【发布时间】:2015-11-20 20:32:30
【问题描述】:
我在一个视图控制器和另一个视图控制器之间有一个 push segue。当从操作表中选择某个选项时,将执行 segue 并显示视图。我按照this answer 创建了segue。
在 iOS 8 上,这可以正常工作。视图被添加到导航控制器,并自动出现一个后退按钮。然而,在 iOS 7 上,我刚刚注意到视图显示为模式,根本不显示导航栏。我不知道什么时候开始发生这种情况,但我似乎无法弄清楚为什么。
当操作表项被按下时,我使用:
[self performSegueWithIdentifier:@"showRouteInformationFromMap" sender:nil];
调用segue。我准备使用:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([[segue identifier] isEqualToString:@"showRouteInformationFromMap"]) {
[[segue destinationViewController] setRouteInfo:selectedRouteID];
}
}
这只是在目标控制器上分配一个值。我没有对任一视图控制器上的导航栏进行任何更改。
【问题讨论】:
-
这里有点摸不着头脑,但是 iOS 8 中添加了一些在 iOS 7 中不可用的转场。您在情节提要中定义了哪种转场?想知道您是否选择了仅适用于 iOS 8 的转场,但由于该转场类型不存在,它正在退回到 iOS 7 上的模态转场。
-
根据界面生成器,segue 类型是“显示(例如推送)”。我有另一个使用完全相同的方法显示的 segue,但有效。
-
是的,那应该不是问题。刚刚注意到您的 prepareForSegue: 方法调用在 if 子句中的 segue 标识符与在操作表调用中定义的标识符不同。不确定这是否会影响您。
-
抱歉,这是一个复制粘贴错误。
-
k,其他人可能比我能提供更多帮助。我需要看看故事板是如何连接起来的,以及视图控制器中的不同属性,以验证一切是否正常。
标签: ios objective-c iphone uinavigationcontroller