Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在使用pushViewController时,如何使用prepareForSegue并避免错误?_Ios_Xcode_Segue_Pushviewcontroller - Fatal编程技术网

Ios 在使用pushViewController时,如何使用prepareForSegue并避免错误?

Ios 在使用pushViewController时,如何使用prepareForSegue并避免错误?,ios,xcode,segue,pushviewcontroller,Ios,Xcode,Segue,Pushviewcontroller,我的片段被添加到故事板中。我想推到一个viewController,比如Deep_VC,不同于故事板中的下一个,比如next_VC。我正在使用: Deep_VC *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"DeepVC"]; [self.navigationController pushViewController:controller animated:YES]; 它在那里,但我有错误。导航

我的片段被添加到故事板中。我想推到一个viewController,比如Deep_VC,不同于故事板中的下一个,比如next_VC。我正在使用:

Deep_VC *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"DeepVC"];
[self.navigationController pushViewController:controller animated:YES];
它在那里,但我有错误。导航条平铺用于下一个_VC,而不是深_VC,错误消息如下:

Finishing up a navigation transition in an unexpected state . . .
Unbalanced calls to begin/end appearance transitions . . .
我的PrepareForegue看起来像:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ([[segue identifier] isEqualToString:@"toNextVC"]) {
        Next_VC *vc = [segue destinationViewController];
        vc.receivedData = [NSMutableArray arrayWithObjects:passData, nil];
    }
    if ([[segue identifier] isEqualToString:@"toDeepVC"]) {
        Deep_VC *vc = [segue destinationViewController];
        vc.receivedData = [NSMutableArray arrayWithObjects:passData, nil];
    }
}

有人能帮忙吗?

在你的情况下,我宁愿使用performSegue而不是pushViewController。但是等一下,如果你已经在故事板上连线了你的风投,你就不需要推。这将由segue自动完成

编辑

if (login == successful) {
       [self performSegueWithIdentifier:@"toNextVC" sender:self];
} else {
       [self performSegueWithIdentifier:@"toDeepVC" sender:self];
}
之后,将自动调用prepareForSegue,并在那里设置数据。不需要pushViewController,因为seque会推送相应的VC


希望有帮助

谢谢你的想法,但是Deep_VC推送是由代码决定的,不在故事板中,也不在具有我需要的segue的VC中。用户如何触发segue或推送?好的,意味着界面中没有用户交互。然后我会使用表演序列。请看我编辑过的答案。我真的很感谢您的跟进,但是,如果没有更多的更改,就找不到深段标识符。在故事板中,是否在inspector的“类”字段中设置了正确的自定义类?你能发布你故事板的截图吗?