如果我使用instantiateViewControllerWithIdentifier在iOS中显示一个viewcontroller,我就不能离开视图而不会崩溃

时间:2013-07-11 14:12:28

标签: ios storyboard

如果我使用instantiateViewControllerWithIdentifier在iOS中显示一个viewcontroller,我就不能离开viewcontroller而不会崩溃。视图加载正常并执行其任务但是当我尝试通过按下按钮离开时,应用程序崩溃。这是因为某些州错了还是我犯了另一个错误?

代码:

- (IBAction)push:(id)sender {

    UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:[[NSBundle mainBundle].infoDictionary objectForKey:@"UIMainStoryboardFile"] bundle:[NSBundle mainBundle]];
    NSLog(@"story: %@",mainStoryboard.description);

    AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];

    ListViewController *controller = (ListViewController*)[mainStoryboard instantiateViewControllerWithIdentifier: @"ListId"];
    appDelegate.window.rootViewController = controller;

}

1 个答案:

答案 0 :(得分:0)

由于按下前一个根视图控制器上的按钮,您正在更改应用程序根视图控制器。这并不是真的应该如何在iOS应用程序中进行导航。相反,请尝试将根视图控制器嵌入UINavigationController,然后通过pushpop视图控制器在您的应用中导航。

如果您的界面不适合导航范例,则可以使用presentViewController:animated:completion:。  无论如何,您应该阅读View Controller Programming Guide,因为它解决了显示视图的最佳做法。