我有一个带有三个选项卡的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>
答案 0 :(得分:0)
你会检查self.parentViewController的值吗?我不确定它是否返回标签栏控制器。
而不是self.parentViewController.viewControllers,执行
self.tabBarController.viewControllers
答案 1 :(得分:0)
在AppDelegate中定义该数组,并在Application Start期间通过代码创建带有表视图的TabController。
现在使用您的注销按钮将tableview的datalist或source设置为nil;