ViewDeck与故事板

时间:2012-12-29 22:27:25

标签: xcode ios6 storyboard

我的应用ViewDeck存在问题。我正在尝试将它与故事板一起使用,这些示例仅显示如何将其与nibfiles一起使用。我已经在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 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:5)

嗯,通过使用ECSlidingViewController来解决这个问题,已经使用storyboard进行了优化。

https://github.com/edgecase/ECSlidingViewController

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

答案 2 :(得分:1)

试试这个tutorial project,它有效