目标C:切换标签后如何立即重新加载tableview?

时间:2011-06-18 18:54:22

标签: objective-c ios uitableview uitabbarcontroller

我的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后立即查看更新的信息。

3 个答案:

答案 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; 类来实现此目的。