我的应用程序的根目录中有 3 个视图控制器/视图:LoginViewController、HomeViewController和PlayViewcontroller
我正在寻找的是一种基于状态在这三个之间进行交换的好方法(例如:成功登录将导致 loginViewcontroller ping 其委托 [rootviewcontroller] 以删除自身并显示 homeviewcontroller)
我在这里似乎有几个选择:
1.RootViewController是一个UIViewController。它根据需要添加/删除子视图。
[self.view addSubview:loginViewController.view];
2.RootViewController是一个UIViewController。它根据需要以模态方式呈现/删除视图。
[self presentViewController:loginViewcontroller animated:NO completion:nil];
3.RootViewController是一个UINavigationController。它推动/弹出东西。
[self pushViewcontroller:loginViewController];
我读过第一个选项有点围绕视图控制器应该是什么的整个想法,因此并不理想。
第二个选项似乎很奇怪,因为我的整个应用程序都是模态的?视图控制器可以模态呈现在模态呈现的视图控制器之上吗?
第三种选择似乎是最好的,(如此处所述),但它在我的具体实现中遇到了一些问题:
- “navigationController”的隐喻并不完全适合(我不是通过登录“深入了解家庭控制器”......)
- 我是否经常切换 navController 的 rootviewcontroller?还是我只是将playvc 推到loginvc 之上的homevc 之上?
- LoginVC 本身就是一个导航视图控制器——它推动了 vc 的创建帐户的多步骤过程,我不能在 navcontrollers 上推动 navcontrollers。
所以,我的问题是:
当其中一些视图控制器本身是 UINavigationControllers 时,在相同层次结构中构建视图控制器的最佳方法是什么?
****注意:***我已经看过这里,但它没有为我的用例(多个导航控制器)提供足够的答案。*****
编辑:我找到了答案:我认为这个问题是错误的,应该考虑创建我自己的Container ViewController。