当app退出时,UITabBarViewController中的UIViewController重置

时间:2011-06-10 05:36:25

标签: iphone objective-c ipad

我有一个带有三个选项卡的UITabBarController,每个选项卡都是一个带有UITableView的UIViewController。 我有一个注销按钮,我想在所有这些UIViewController中清除UITableView,所以从我做过的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清除它? p>

2 个答案:

答案 0 :(得分:0)

你会检查self.parentViewController的值吗?我不确定它是否返回标签栏控制器。

而不是self.parentViewController.viewControllers,执行

self.tabBarController.viewControllers

答案 1 :(得分:0)

在AppDelegate中定义该数组,并在Application Start期间通过代码创建带有表视图的TabController。

现在使用您的注销按钮将tableview的datalist或source设置为nil;