0

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

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

每次选择选项卡时,任何人都可以帮助我实现 rootview 吗?有人知道怎么做吗?

4

1 回答 1

2

每次切换 IUTabBarController 选项卡时,UINavigationController 保存其视图控制器堆栈并显示最顶部的一个是正常的。那么,您是说您希望每个 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')视图控制器:

– popToRootViewControllerAnimated:

请注意——一般用户希望 UITabBarController 选项卡保留与上次切换到它时相同的视图。

哦,还有,你所说的是当一个标签栏标签被点击两次时的默认行为(即,当已经选择了该标签栏标签时点击它时)。

于 2012-07-07T09:36:42.437 回答