我有一个带有三个选项卡的UITabBarController,每个选项卡都是具有UITableView的UIViewController。 我有一个注销按钮,我想清楚了的UITableView在所有这些的UIViewController,所以从UIViewController中的一个我所做的:UITabBarViewController中的UIViewController在应用程序注销时重置
NSArray * viewControllers = ((UITabBarController *)self.parentViewController).viewControllers;
AllGroupsViewController * agvc = [viewControllers objectAtIndex:1];
[agvc.groups removeAllObjects];
[agvc.table reloadData];
SearchViewController * svc = [viewControllers objectAtIndex:2];
[svc.results removeAllObjects];
[svc.table reloadData];
然而,似乎viewControllers的NSArray的是空的。当您注销时,是否有另一种方法可以重新设置所有内容?
我目前的应用程序的问题是,当我有一个用户登录并使用应用程序。他注销并且有新用户登录,新用户仍然可以在UITableView中看到之前的用户历史记录。这就是为什么我想在用户注销时跨越UITabBarController中的三个UIViewController清除此内容的原因:
我认为这应该工作..现在的问题是,在标签栏中的三个UIViewController是在UINavigationController ..所以如何访问UINavigatioNController的UIViewController – adit 2011-06-10 05:54:33
UINavigationController有两个属性可以帮助你。 rootViewController和visibleViewController。 visibleViewController会给你屏幕上的一个,而rootViewController会给你最下面的一个。这是一个到UINavigationController文档的链接。 http://developer.apple.com/library/ios/#documentation/uikit/reference/UINavigationController_Class/Reference/Reference.html – 2011-06-11 22:14:48
通过给我这个[tabBarViewController isKindOfClass:[UINavigationController class]] – ravoorinandan 2011-10-13 10:36:42