假设这是我的 View 层次结构,
View Controller :L (login:success)
-> A |乙| C | D | E -> (注销)
L
是的,这是一个支持 UITabbarController
的应用程序,用户可以从任何选项卡注销,我需要将他带到 L。每个选项卡都有单独的 UINavigationController
.
来自风险投资
- 用户可以转到 A1 > A2 > A3
- B 用户可以转到 B1 > B2 > B3
- C 用户可以转到 C1 > C2 > C3
- D 用户可以转到 D1 > D2 > D3 > D4
- E用户可以去E1 > E2
假设我的应用程序的用户位于特定选项卡的以下位置,
- 选项卡 1:A3
- 选项卡 2:B3
- 标签 3:C3
- 选项卡 4:D3
- 标签 5:E2
现在,
我的问题?
如果用户想要从 E2 注销 – 我如何通过从每个选项卡中删除所有推送的 View Controller 来将他带到 L?
需要吗?如果是,那么我该如何为不同的导航 Controller 做到这一点。
有什么好的方法吗?
我想做什么?
- 我只需将 Root View Controller 更改为 L,但我认为这不是完成此操作的好方法。
更新:找到这个!
登录前:
登录后:
注销后:
请提出建议。
最佳答案
为什么不使用 presentViewController
从每个导航 Controller 模态显示注销 View ,而不是重新排序导航堆栈。
如果用户想要注销 E2,请以模态方式显示注销 View ,分配一个委托(delegate)回调,以便您知道一旦他们注销并且 View 即将关闭。在此之前弹出回根(E1)。
关于ios - 如何正确更改 View Controller 层次结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31702131/