我基本上只是问,这两种情况之间代码/应用程序的运行方式是否存在差异:
1)你推到了一个viewcontroller
2)你推送到一个viewcontroller,然后弹出那个viewcontroller,然后再次推送它
似乎必须有,因为我的应用程序在情境1中正常工作,但在情境2中失去了一些功能。
我有一个导航控制器,在控制器之间有推送段。在主菜单屏幕中,您可以按下一个按钮到另一个视图控制器viewController2,它显示带有地图的图像视图,然后用户选择一个位置,图像视图显示方向箭头。
有一个后退按钮viewController2,它只是一个标准的自定义后退按钮:
- (IBAction)customBackButton:(id)sender {
[self.navigationController popViewControllerAnimated:YES];
}
如果我单击此后退按钮,我将返回主菜单...然后如果我再次导航到viewcontroller2,使用相同的push segue,则某些功能将不再起作用。它显示地图,但箭头不会放到地图上。
似乎代码无法与viewcontroller2类的某些属性进行交互。例如,我有一个名为_destinationLabel的UILabel文本应该根据用户选择的位置而改变。这永远不会改变,即使它正确地通过代码。但是,其他标签确实可以正确更改。