我的tabbar控制器中有两个标签栏。我目前在第二个标签栏中,点击“完成”按钮后,标签栏控制器需要切换到第一个标签并自动刷新其中的tableview。
我能够在第一部分执行
//Switch to the first tab's view
self.tabBarController.selectedViewController
= [self.tabBarController.viewControllers objectAtIndex:0];
但是我需要一些建议如何在切换后立即刷新第一个视图的tableview。任何建议表示赞赏。
编辑:更新了要求
注意:我不希望每次有人点击选项卡时都会重新加载标签栏中的视图。重新加载应仅在选项卡1的表视图中进行
1)用户在标签2中
2)用户点击标签2中的“完成按钮”
3)应用程序切换到选项卡1 +重新加载选项卡1中的表格视图
基本原理是用户将更新选项卡2中的某些信息,这些信息只能在选项卡1中查看。我希望用户能够在切换到选项卡1后立即查看更新的信息。
答案 0 :(得分:7)
您可以在第一个视图的[tableView reloadData]
方法中执行viewDidAppear:
吗?
编辑:编辑以添加其他数据。
一般警告,Apple倾向于对这样的自定义UI模式感到沮丧。我不确定你的应用程序在这里尝试做什么,但只有当用户明确点击该选项卡时,你才应该坚持使用切换选项卡。如果您想要显示一个屏幕并获取一些数据,而不是将它放在标签栏中,您是否看过模态视图控制器?
如果没有,我想你可以有一个解决方案,第一个标签是第二个标签的代表。单击该按钮时,您可以调用[delegate doneBtnClicked:]
,以便控件切换到第一个选项卡。在该功能中,您可以将setSelectedIndex:
用于当前标签,并在表格视图中调用reloadData:
。
答案 1 :(得分:2)
您可以在
之后发送NSNotification
在第二个标签上按完成按钮
并在第一个标签控制器上处理此通知。
答案 2 :(得分:1)
因此,创建一个DONE按钮作为UIBarButtonItem
,并在其IBAction中,执行以下操作。
要在第一个选项卡中为视图重新加载tableView,请将该tableView作为该类“property
”,并将reference the class
添加为@class class1
,并将对象创建为属性{{ 1}}用于View2(Tab2)类中的View1(Tab1),并使用object1访问array1,如
class1 *object1
要将视图添加到标签1,请使用
[class1.object1.array1 reloadData];
差不多了!
或者,您也可以使用self.tabBarController.selectedIndex = 0;
类来实现此目的。