Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.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 7上的推送序列未显示导航栏_Ios_Objective C_Iphone_Uinavigationcontroller - Fatal编程技术网

iOS 7上的推送序列未显示导航栏

iOS 7上的推送序列未显示导航栏,ios,objective-c,iphone,uinavigationcontroller,Ios,Objective C,Iphone,Uinavigationcontroller,我在一个视图控制器和另一个视图控制器之间有一个推送序列。当从操作表中选择某个选项时,将执行该步骤并显示视图。我根据创建了segue 在iOS 8上,这可以正常工作。视图将添加到导航控制器,并自动显示“后退”按钮。然而,在iOS 7上,我刚刚注意到视图显示为模态,根本不显示导航栏。我不知道这是什么时候开始的,但我似乎不知道为什么 按下操作表项时,我使用: [self performSegueWithIdentifier:@"showRouteInformationFromMap" sender:n

我在一个视图控制器和另一个视图控制器之间有一个推送序列。当从操作表中选择某个选项时,将执行该步骤并显示视图。我根据创建了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];
    }
}

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

2种解决方法

iOS 8中引入了show segue,因此在iOS 7中出现意外行为是意料之中的

第一个解决方法: 手动按下控制器

UIViewController *myController = [self.storyBoard.instantiateViewControllerWithIdentifier:@"storyboardIdentifier"];
self.navigationController pushViewController:myController animated:YES];
第二种解决方法: 使用故事板

断开显示序列,然后重试
连接推送序列(显示为已弃用)。

尝试删除情节提要中的序列,然后再次创建序列。这种方法在iOS 10中对我很有效。

这里有点暗中操作,但是iOS 8中添加了iOS 7中没有的Segue。你在故事板中定义了什么类型的segue?不知道您是否选择了仅限iOS 8的segue,但由于该segue类型不存在,它会退回到iOS 7上的模式segue。根据interface builder,segue类型为“Show(例如Push)”。我有另一个片段,使用完全相同的方法显示,但很有效。是的,那应该不是问题。刚才注意到您的prepareforsgue:method调用在if子句中的segue标识符与在操作表调用中定义的segue标识符不同。我不确定这是否影响了你。对不起,那是个错误。k,其他人可能比我更能帮助你。我需要看看故事板是如何连接起来的,以及视图控制器中的不同属性,以验证一切都是它应该的样子。哈哈,多疯狂的bug啊。似乎如果您创建一个Show detail segue,然后将其类型更改为Show(Push),它将不会显示导航栏。这就是为什么你需要重新创建它。然后它就成功了!