iPhone Dev:从子控制器和TabBar中的另一个控制器重新加载表视图的数据

时间:2009-05-31 15:45:18

标签: iphone uitableview uitabbarcontroller reload

我正在实现一个Notes管理器应用程序,它在tabBar中有一个tableView,其中显示了其注释的主要信息。访问一个注释时,您可以编辑其属性。在tabBar的一个按钮中,您可以选择在tableView中显示注释的方式。

我遇到的问题是我不知道如何从子控制器或tabBar的其他控制器重新加载数据。我不知道如何从它们引用tableView,所以我可以使用reloadData从它们更新TableView的信息。

我在iPhone开发方面很陌生......任何帮助都会非常感激。

4 个答案:

答案 0 :(得分:8)

您应该尝试NSNotificationCenter

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(doSomething:) name:@"doSomethingNotification" object:nil];

[[NSNotificationCenter defaultCenter] postNotificationName:@"doSomethingNotification" object:nil];

答案 1 :(得分:4)

将表更新代码放在viewWillAppear中:代替viewDidLoad - 每次从子控制器返回父控制器时,都会重新加载数据。

答案 2 :(得分:2)

MVC模式将在这里提供帮助,

只要您继续使用所需信息更新模型,并且您的控制器正在从该模式更新。当您在视图之间向后滑动时,最终会自动更新视图。

通过这种方式,您可以调用重新加载数据方法,它们将得到更新。

[tableviewController.tableview reloadData]; 

是您访问重新加载数据消息的方式。

答案 3 :(得分:0)

我在处理原型单元时遇到了同样的问题。很奇怪我很确定我做的一切都很对。

然后我开始思考XCode是否有任何问题。所以我清理了所有东西,重新启动了XCode,它仍然抱怨。

最后,我尝试重做我对故事板的最新更改,即添加tableviewcell类并将其与所有ui控件连接起来。最后它停止了抱怨。

我不认为这个错误是由你的代码或其他东西造成的,我在iOS 5中遇到了几个奇怪的错误。它还在测试并且有很多错误。

无论如何,故事板很棒,我会尝试习惯它,它会描绘你的应用程序的大局,并且很容易处理不同视图之间的关系。另外,我真的很喜欢他的准备方法。

好运,好运。