每次选择选项卡时如何获得相同的视图?

时间:2012-07-07 09:26:33

标签: iphone ios uinavigationcontroller uitabbarcontroller

我有一个基于tabbar的iphone应用程序,其中每个标签本身就是一个导航控制器。所以在每个标签视图中都有子视图,我正在推送到self.navigation控制器。

问题当我按下一个视图然后选择另一个选项卡然后再回来我选择相同的选项卡,然后它将显示推送的视图。不是我想要来的观点。

每次选中标签时,有人可以帮助我实现rootview吗?有人知道怎么做吗?

1 个答案:

答案 0 :(得分:2)

UINavigationControllers保存其视图控制器堆栈并在每次切换IUTabBarController选项卡时显示最顶层的一般是正常的。那么,你是说你想让每个UINavigationController在每次标签栏切换时都释放堆栈吗?如果是这样,那么请查看UITabBarControllerDelegate文档:

http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UITabBarControllerDelegate_Protocol/Reference/Reference.html#//apple_ref/doc/uid/TP40006932

这里有一些方法可以告诉你切换标签的时间:

 – tabBarController:shouldSelectViewController:
 – tabBarController:didSelectViewController:

我假设你知道代理协议是如何工作的。

然后看一下UINavigationController的文档,它有一些方法可以将视图控制器“弹出”堆栈:

http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UINavigationController_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40006934

这将弹出到顶部('root')View Controller:

– popToRootViewControllerAnimated:

提醒一句 - 一般来说,用户希望UITabBarController选项卡保留与上次切换时相同的视图。

哦,而且,你所说的是弹出标签栏标签两次时的默认行为(即,当选择了标签栏标签时点击它)。