ViewDeck с раскадровкой

У меня есть некоторые проблемы с ViewDeck с моим приложением.
Я пытаюсь использовать его с раскадровкой, а в примерах только показано, как использовать его с нибфайлами. Я проверил много способов сделать это здесь на stackexchange, но я, кажется, не заставить его работать.

Мой код в файле appdelegate.m:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

    //UIViewController* leftController = [[UIViewController alloc] init];

    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];

    RightViewController* rightController = [[RightViewController alloc] initWithNibName:@"RightViewController" bundle:nil];

    ViewController* centerController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
    self.centerController = [[UINavigationController alloc] initWithRootViewController:centerController];
    IIViewDeckController* deckController = [[IIViewDeckController alloc] initWithCenterViewController:self.centerController rightViewController:rightController];

    deckController.rightSize = 100;

    self.window.rootViewController = deckController;
    [self.window makeKeyAndVisible];
    return YES;

}

Я конечно получаю ожидаемую ошибку:

2012-12-29 03:55:18.501 Network[27451:c07] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: 'NSBundle </Users/Rostgaard/Library/Application Support/iPhone Simulator/6.0/Applications/C2BADD3B-660E-4363-8FC7-932B4E9D6172/Network.app> (loaded)' with name 'RightViewController''
*** First throw call stack:
(0x17cd012 0x15f2e7e 0x17ccdeb 0x755fac 0x61ae37 0x61b418 0x61b648 0x61b882 0xbcdf 0xe673 0xb7e2 0xada7 0x61d753 0x61da7b 0x61e964 0x581877 0x5885a3 0x580eed 0x56ab56 0x56adbf 0x56af55 0x573f67 0x2546 0x5377b7 0x537da7 0x538fab 0x54a315 0x54b24b 0x53ccf8 0x261adf9 0x261aad0 0x1742bf5 0x1742962 0x1773bb6 0x1772f44 0x1772e1b 0x5387da 0x53a65c 0x226d 0x2195 0x1)
libc++abi.dylib: terminate called throwing an exception
(lldb) 

3 ответа

Решение

Ну, решил сам, используя вместо этого ECSlidingViewController, уже оптимизированный с раскадровкой.

https://github.com/edgecase/ECSlidingViewController

На всякий случай, если кто-то столкнется с той же проблемой.

Вот код, который я использую, который отлично работает:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

    UIStoryboard* mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle: nil];
    UIViewController* menuController = [mainStoryboard instantiateViewControllerWithIdentifier:@"LeftSideMenu"];

    UINavigationController* navigationController = (UINavigationController *) self.window.rootViewController;
    self.viewDeckController =  [[IIViewDeckController alloc] initWithCenterViewController:navigationController leftViewController:menuController rightViewController:nil];
    self.window.rootViewController = self.viewDeckController;
}

Попробуйте этот учебный проект, он работает

Другие вопросы по тегам