目标C:如何切换标签后立即重新加载tableview?
我有我的tabbar控制器中的2个tabbars。 我目前在第二个tabbar中,当我点击一个“完成”button后,tabbar控制器需要切换到第一个tab并自动刷新它的tableview。
我能够执行第一部分
//Switch to the first tab's view self.tabBarController.selectedViewController = [self.tabBarController.viewControllers objectAtIndex:0];
不过,我需要一些build议,如何在切换后立即刷新第一个视图的tableview。 任何意见表示赞赏。
编辑:更新的要求
注意:我不希望每次有人点击标签页时,都会重新加载tabbar中的视图。 重新加载应该只发生在标签1的tableview时
1)用户在标签2中
2)用户点击标签2中的“完成button”
3)应用程序切换到标签1 +重新加载tableview在标签1
理由是用户将更新标签2中的一些信息,只能在标签1中查看。我希望用户能够在切换到标签1后立即查看更新的信息。
之后可以发送NSNotification
在第二个选项卡上按完成button
并在第一个选项卡控制器上处理此通知。
你可以在第一个视图的viewDidAppear:
方法中执行[tableView reloadData]
?
编辑:编辑添加额外的数据。
一般的警告在这里,苹果倾向于像这样的自定义用户界面模式皱眉。 我不确定你的应用程序在这里要做什么,但是只有当用户明确地点击了该选项卡时,你才应该坚持切换选项卡。 你有没有看过模态视图控制器,如果你想呈现一个屏幕,并获取一些数据,而不是在一个标签栏中?
如果没有,我想你可以有一个解决scheme,第一个选项卡是第二个选项卡的代表。 点击button后,可以调用[delegate doneBtnClicked:]
以便控件切换到第一个选项卡。 在这个函数中,你可以使用setSelectedIndex:
到你当前的选项卡,并在表视图中调用reloadData:
所以,创build一个DONEbutton作为UIBarButtonItem
,在它的IBAction中,执行以下操作。
为了在第一个选项卡中重新加载视图的tableView,将该tableView作为该类的property
,并像@class class1
一样reference the class
,并为View2的类View1(Tab1)创build一个对象作为属性class1 *object1
(Tab2),并使用object1访问array1
[class1.object1.array1 reloadData];
为了使视图变为制表符,请使用
self.tabBarController.selectedIndex = 0;
这几乎是它!
另外,你也可以使用singleton
类来达到这个目的。