2

我的应用程序在使用ViewDeck时遇到了一些问题。
我正在尝试将它与情节提要一起使用,示例仅显示如何将其与 nibfile 一起使用。我已经在 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) 
4

3 回答 3

9

这是我正在使用的代码,它工作正常:

- (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;
}
于 2013-05-10T14:20:16.073 回答
5

好吧,我自己通过使用 ECSlidingViewController 解决了这个问题,已经用故事板进行了优化。

https://github.com/edgecase/ECSlidingViewController

以防万一有人遇到同样的问题。

于 2013-01-05T00:23:38.660 回答
1

试试这个教程项目,它有效

于 2013-01-13T18:38:10.017 回答