iOS 7 上的 Push Segue 未显示导航栏

Navigation Bar not showing with Push Segue on iOS 7

我在一个视图控制器和另一个视图控制器之间有一个 push segue。当从操作 sheet 中选择某个选项时,将执行 segue 并显示视图。我根据 this answer.

创建了 segue

在 iOS 8 上,这工作正常。视图被添加到导航控制器,并自动出现后退按钮。然而,在 iOS 7 上,我刚刚注意到该视图显示为模态,根本不显示导航栏。我不知道这是什么时候开始发生的,但我似乎无法弄清楚为什么。

当动作sheet项被按下时,我使用:

[self performSegueWithIdentifier:@"showRouteInformationFromMap" sender:nil];

调用 segue。我使用以下方法准备 segue:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ([[segue identifier] isEqualToString:@"showRouteInformationFromMap"]) {
        [[segue destinationViewController] setRouteInfo:selectedRouteID];
    }
}

这只是在目标控制器上分配一个值。我没有对任一视图控制器上的导航栏进行任何更改。

有 2 个解决方法。

show segue 在 iOS 8 中引入,因此非常期待 7 中的意外行为。

第一个解决方法: 手动推动你的控制器

UIViewController *myController = [self.storyBoard.instantiateViewControllerWithIdentifier:@"storyboardIdentifier"];
self.navigationController pushViewController:myController animated:YES];

第二种解决方法: 使用故事板

断开节目转播并 连接推送 segue(显示为已弃用)。

尝试在情节提要中删除您的转场并重新创建转场。这种方法在 iOS 10 对我有用。