0

我有一个导航控制器,它的根视图是一个简单的视图。它有一个通过序列连接到第二个视图控制器的按钮。序列导致第二个视图控制器显示模式。如果条件不成立,我直接想在应用程序启动后显示第二个视图控制器。我尝试了很多代码,但它不会工作。这是我的场景的截图:我的场景

任何想法如何做到这一点?


我尝试了以下方法:

UIStoryboard *storybord = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; 
UINavigationController *vc = [storybord instantiateInitialViewController]; 
[[vc.viewControllers objectAtIndex:0] performSegueWithIdentifier:@"simple" sender:self];

但我收到以下错误消息:

尝试呈现<UINavigationController: 0x71b2ab0>不在<UINavigationController: 0x71b12c0>窗口层次结构中的视图!

4

1 回答 1

1

我假设您正在尝试来自应用程序委托的示例代码?您需要确保在加载第一个视图之前不要尝试执行 segue。巧合的是,如果你等到那个时候,它会容易得多,因为你需要做的就是performSegueWithIdentifier. 因此,在viewDidLoad第一个视图控制器中,例如:

if (bShouldAutomaticallyPerformSegueToSecondVC)
    [self performSegueWithIdentifier:@"simple" sender:self];

显然,替换bShouldAutomaticallyPerformSegueToSecondVC为任何合适的逻辑来确定您何时自动想要转到第二个视图控制器。

于 2012-11-10T16:23:23.540 回答