从viewDidLoad()执行Segue

时间:2017-07-03 14:03:17

标签: android ios objective-c segue

我是iOS新手。我有一个非常类似的要求,比如我的Android项目。要求是在我的LoginActivity onCreate()中,我正在检查某些条件,如果它是真的,那么我将使用Intent启动我的下一个活动。

我正在尝试从我的iOS应用程序执行相同的功能。在我的LoginViewController viewDidLoad()中,在检查某些条件后,我正在调用[self performSegueWithIdentifier:@"myNextControllerSegue" sender:nil];

但是,我的ViewController没有更改为下一个视图控制器。任何帮助将不胜感激。

3 个答案:

答案 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"标识符。