我有一个项目,它有一个视图控制器作为初始屏幕,然后是一个嵌入在导航视图控制器中的视图控制器。我点击第一个屏幕上也有一个按钮,我希望打开导航控制器屏幕。
我点击了按钮然后在'连接检查器'上,我向该导航控制器添加了推送事件,但是没有发生segue。我怎么能实现呢?
经过一番研究后,我成功地完成了这项工作。这是我正在使用的代码:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
NSLog(@"Source Controller = %@", [segue sourceViewController]);
NSLog(@"Destination Controller = %@", [segue destinationViewController]);
NSLog(@"Segue Identifier = %@", [segue identifier]);
if ([segue.identifier isEqualToString:@"mysegue"])
{
NSLog(@"coming here");
SecondViewController *loginViewController = (SecondViewController *)segue.destinationViewController;
//SecondViewController *navigationController = [[UINavigationController alloc]init];
[self presentModalViewController:loginViewController animated:YES];
}
}
答案 0 :(得分:0)
您确定导航控制器与嵌入式视图控制器的连接是否已正确设置?第一个视图控制器应连接到导航控制器,具有Push
样式segue,导航控制器应连接到第二个视图控制器,具有Relationship
样式segue。
无论如何,Apple官方教程之一就是这样做的,所以你可以将你的代码与它进行比较,看看是否存在差异:Your Second iOS App。 prepareForSegue
方法本身并不涉及触发segue;它只是在segue运行以准备新的视图控制器之前调用。