我有一个带有简单视图的导航控制器作为其根视图。它有一个通过seque连接到第二个视图控制器的按钮。 seque导致第二个视图控制器显示模态。如果条件不正确,我直接想要在应用程序启动后显示第二个视图控制器。 我尝试了很多代码,但它不会工作。以下是我的场景的屏幕截图:
任何想法如何做到这一点?
我尝试了以下内容:
UIStoryboard *storybord = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UINavigationController *vc = [storybord instantiateInitialViewController];
[[vc.viewControllers objectAtIndex:0] performSegueWithIdentifier:@"simple" sender:self];
但是我收到以下错误消息:
尝试在视图不在窗口层次结构中的
<UINavigationController: 0x71b2ab0>
上显示<UINavigationController: 0x71b12c0>
!
答案 0 :(得分:1)
我假设您正在尝试来自app delegate的示例代码?您需要确保在加载第一个视图之前不要尝试执行segue。巧合的是,如果你等到那时,它就像你需要做的performSegueWithIdentifier
一样容易。因此,在第一个视图控制器的viewDidLoad
中,例如:
if (bShouldAutomaticallyPerformSegueToSecondVC)
[self performSegueWithIdentifier:@"simple" sender:self];
显然,用适当的逻辑替换bShouldAutomaticallyPerformSegueToSecondVC
以确定何时自动转到第二个视图控制器。