UIViewController工作流管理没有模态,tabbar和navigationcontroller?

时间:2011-08-05 10:09:40

标签: uiviewcontroller workflow

Hello stackoverflow研究员!

请考虑iOS中的UI工作流程: 一个主视图控制器和其他几个视图控制器从那里分支出来:

mainviewcontroller

+ - viewcontroller 1

+ - viewcontroller 2

+ - viewcontroller 3

我希望能够从主视图控制器切换回切换回其他视图控制器之一,并切换BETWEEN其他视图控制器。 我所知道的所有iOS模式似乎都存在问题:

  • 如果我可以制作,那么UITabbarController将是正确的选择 tabbar消失 - 它不适合设计。我能够隐藏
    条形图,但是视图控制器屏幕不会自己调整大小 整件事感觉很乱。

  • UINavigationController的设计顺序为 屏幕,滑入动画也不适合设计

  • 模态视图控制器也用于顺序,另外我必须保留 跟踪堆栈中有多少个viewcontrollers。还有一个 解雇视图控制器并立即解决时间问题 提出下一个。

  • 我想在视图控制器中切换视图我猜,但是 viewcontrollers有各种各样的子任务。我最终会 一个巨大的viewcontroller和许多嵌入的方法 不同意见。

我的问题: 以我想要的任何顺序管理一堆视图控制器的最佳方法是什么?

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

我会有一个主UIViewController。那个人会引用其他三个UIViewControllers。然后,您可以在主UIViewController

中执行此类操作
[self.view addSubview:view1.view];

这样可行,但我不建议你这样做,因为这不是自然的做法。正如苹果所述:

  

您不应该使用视图控制器来管理仅填充的视图   他们的窗口的一部分 - 也就是说,只是由其定义的区域的一部分   应用内容矩形。如果你想拥有一个界面   由几个较小的视图组成,将它们全部嵌入到一个根中   使用视图控制器查看和管理该视图。

答案 1 :(得分:0)

好的,我的解决方案并不完美,但似乎有效: 创建一个UINavigationController。 使用viewcontrollers:方法根据自己的喜好添加一堆viewcontrollers。 在viewcontrollers之间切换时,重建堆栈并重新连接。

问题:您只能使用导航控制器动画(滑入/滑出)。 但您可以禁用navigationcontrollers动画,获取下一个viewcontrollers视图,使用UIView动画为其设置动画,然后通过堆栈构建切换到视图控制器本身,如上所述。

真的很不完美,但有效。