好吧,我真的没有看到导航控制器包装我的视图并试图在我的故事板上拖动segues的大赢家。当你从堆栈中推出/弹出视图时,当然你得到了iOS的好处,自动添加了一个后退按钮,但是对于任何经过一个简单应用程序的东西,我甚至都不关心它!
我的目标只是让1个视图实际代表给定的页面。然后使用以下代码以编程方式移动到另一个视图:
ViewController *vc = [storyBoard instantiateViewControllerWithIdentifier:@"ViewController"];
[self presentViewController:modalYearPickerViewController animated:NO completion:nil];
或
ViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"ViewController"];
[self.navigationController pushViewController:vc animated:YES];
我意识到为了推动第二个例子,我需要将视图包装在导航视图控制器中,但是使用这些方法之一可以防止我不得不创建“segues”,我发现很难管理。设置segue iOS的一半时间会抛出错误,说它无法执行或者segue不存在。
很多时候我要么隐藏按钮,要么在飞行中改变“返回/返回”可能会根据之前的操作或屏幕驱动用户。
我在这里失踪了什么?我对iOS很新,但我来自网络世界,我习惯于能够轻松浏览屏幕。
有人有任何想法吗?
编辑:这是一个简单的例子解决方案。当我到达“详细信息”页面时,我希望在主页上有一个后退按钮,而不是模态。
答案 0 :(得分:1)
从图表中我可以预期:
在根目录中,您有一个包含Artists
的导航控制器。 Artists
有一个模式segue New Artist
(好吧,包含它的导航控制器)和推送到Artist Songs
。
New Artist
是导航控制器的根,并且推送到Artist Songs
。 New Artist
在导航栏中有Cancel
和Done
按钮。
Artist Songs
应该是可配置的(它可以自己确定),这样它就有一个后退按钮(总是基于这个模型,并自动处理)和一个Done
按钮New Artist
(完成保存并解除模态,从而将用户带回Artists
)。
以上所有内容都是可以通过segues或直接实例化以及从代码转换实现的,您使用的是个人偏好。