我是iOS新手。我有一个非常类似的要求,比如我的Android项目。要求是在我的LoginActivity onCreate()
中,我正在检查某些条件,如果它是真的,那么我将使用Intent
启动我的下一个活动。
我正在尝试从我的iOS应用程序执行相同的功能。在我的LoginViewController viewDidLoad()
中,在检查某些条件后,我正在调用[self performSegueWithIdentifier:@"myNextControllerSegue" sender:nil];
。
但是,我的ViewController没有更改为下一个视图控制器。任何帮助将不胜感激。
答案 0 :(得分:1)
viewDidLoad:
不用于segue表演。您应该在viewDidAppear:
中调用segue,其中已经建立了视图结构。
答案 1 :(得分:1)
需要在正确的位置执行segue。您尝试在层次结构中的第一个视图之前加载另一个视图。因此,调用viewDidAppear,您需要一个完整加载的视图进行修改。
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
[self performSegueWithIdentifier:@"myNextControllerSegue" sender:nil];
}
要消除这种闪烁,只需在viewWillApear
方法中隐藏视图。
否则作为快速搜索,您可以将其转换为主线程,如下所示
dispatch_async(dispatch_get_main_queue(), { () -> Void in
//perform segue
})
答案 2 :(得分:0)
在故事板上,单击视图控制器,转到" Connections检查器"部分,并且在"触发的segues"中,拖动" +"按钮到你想要到达的控制器。
现在点击你的segue然后继续"属性检查器"部分,并设置" myNextControllerSegue"标识符。