如何从UINavigationController弹出时卸载UITabBarController?

时间:2010-12-12 04:29:16

标签: iphone objective-c uinavigationcontroller uitabbarcontroller

当UITabBarController从UINavigationController的堆栈中弹出时,有没有办法卸载它,以便在将其推回堆栈时重新加载?我需要清除标签栏中所有视图控制器中的所有数据。

我尝试了各种方法迭代标签栏的视图控制器并将每个设置为nil,并将标签栏的视图设置为nil,并且我还尝试将didReceiveMemoryWarning消息发送到每个视图。

在我的主nib文件(MainWindow.xib)中,我有一个UINavigationController和一个UITabBarController。两者都作为IBOutlets连接到app委托,以便于自动加载控制器,尤其是标签栏控制器。

导航控制器首先加载另一个视图作为其根视图,当用户点击按钮时,UITabBarController被推送到UINavigationController堆栈。

一切正常。

现在我希望能够从导航控制器堆栈弹出UITabBarController,因此会重新显示导航控制器的根视图,并在隐藏时重置UITabBarController中所有视图的所有数据(离开堆栈。)

从标签栏控制器中的一个视图控制器,我可以调用[self.tabBarController.navigationController popToRootViewController:YES]并且工作正常。

但是如何卸载并重新加载所有UITabBarController的视图?

1 个答案:

答案 0 :(得分:0)

您应该能够重新启动视图控制器并将它们传递到tabBarController的setViewControllers:方法。