我正在创建一个基于Tab的应用程序。其中一个选项卡按钮在按下时显示导航控制器。然后显示与该导航控制器关联的默认根视图控制器。
我希望允许用户向后移动单击该标签栏按钮时显示的默认控制器。从概念上讲,当用户单击标签栏按钮时显示的“主”控制器将是导航堆栈中的第二个控制器。
我这样做的原因是“后退”控制器是一种设置屏幕。更改设置将有效地使“主”控制器无效并且需要重新创建。我知道我可以将设置屏幕作为模态视图控制器,但是当设置更改后要取消模态控制器时,我必须销毁“后面的主控制器并重建它。”
所以我的想法是将“主”控制器从堆栈弹出到设置屏幕,然后一旦他们选择了设置,就将“主”视图控制器的新实例推送到堆栈上。
我的两个想法是实现这个:
我没有成功使用这两种方法。我见过应用程序主要是Twitter应用程序,你可以回到单击标签栏项目时加载的默认控制器。
任何人都知道如何做到这一点?我宁愿沿着标签栏按钮触发导航堆栈中的第二个控制器默认加载。
答案 0 :(得分:0)
如果这是您想要的apporoach,您可以将自己设置为tabcontroller委托并实现该方法:
-tabBarController:didSelectViewController:
在这里,您可以检查所选控制器是否是您的导航控制器,然后弹出到您想要的viewController。