Segue不会使用performSegueWithIdentifier加载

时间:2012-07-13 15:17:36

标签: ios xcode segue

我给了我的segue身份modaltomenu

modaltomenu

在我的代码中,我使用以下内容调用segue:

if([login_status isEqualToString:@"success"]){
            //start the menuviewcontroller
            [self performSegueWithIdentifier:@"modaltomenu" sender:self];

            NSLog(@"segue %@", @"performed");
        }

if语句始终为true。

但是从未加载第二个视图。加载第一个视图时会运行此代码。

为什么我的segue装载?

谢谢!

2 个答案:

答案 0 :(得分:1)

你说代码是在第一个视图加载时运行的,所以我是否正确地在viewDidLoad方法中假设它?如果是这样,请尝试将该if语句移动到视图控制器生命周期中的viewDidAppear方法。 ViewDidLoad通常只发生一次,而每次视图出现在屏幕上时都会调用viewDidAppear。所以它看起来像......

- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:YES];
    if([login_status isEqualToString:@"success"]){
        //start the menuviewcontroller
        [self performSegueWithIdentifier:@"modaltomenu" sender:self];

        NSLog(@"segue %@", @"performed");
    }
}

答案 1 :(得分:1)

要进一步排查,请将其放入VC:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    NSLog(@"segue identififer = %@",segue.identifier);
}

确保viewDidLoad中的代码按预期执行。如果没有,您可能需要重新考虑调用performSegue方法的位置。