【问题标题】:Managing multiple viewcontrollers with views displayed in a sequential way - should I use NavigationController?使用按顺序显示的视图管理多个视图控制器 - 我应该使用 NavigationController 吗?
【发布时间】:2011-04-09 07:10:09
【问题描述】:
我有许多 viewControllers (iPad),它们管理向用户呈现各种屏幕的不同视图(开始屏幕 -> 设置屏幕 -> 主屏幕 -> 详细信息屏幕 -> 摘要屏幕)。
这些屏幕正在根据用户交互顺序遍历(如上面的箭头所示)。该规则的一个例外是我应该能够从每个其他屏幕导航到开始屏幕。
我不想让用户显式浏览这些屏幕(使用导航栏) - 只有应用程序逻辑应该这样做。
我应该如何处理这样的 viewControllers 表示逻辑?我应该使用带有隐藏导航栏和弹出/推送视图控制器的 NavigationController 吗?还是不必要的矫枉过正?也许简单地将 viewController.view 添加到根视图的子视图就足够了?
对不起,如果这个问题很愚蠢,但我认为我仍然没有在 iOS 中得到 MVC 是正确的
【问题讨论】:
标签:
iphone
cocoa-touch
ipad
ios
【解决方案1】:
是的,在这种情况下,NavigationController 是您的朋友。基础是:
[self.navigationController pushViewController:newViewController animated:YES];
...将每个后续视图控制器添加到堆栈中,然后...
[self.navigationController popToRootViewControllerAnimated:YES];
...让您回到开始屏幕。
当然可以在每个视图控制器的viewDidLoad 方法中隐藏导航栏,但这会阻止您返回堆栈。如果这是故意的,那么我认为这是一个完全有效的设置。