Ios 在使用pushViewController时,如何使用prepareForSegue并避免错误?
我的片段被添加到故事板中。我想推到一个viewController,比如Deep_VC,不同于故事板中的下一个,比如next_VC。我正在使用: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]; 它在那里,但我有错误。导航
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的“类”字段中设置了正确的自定义类?你能发布你故事板的截图吗?