将值传递回DetailViewController

时间:2014-03-05 18:55:19

标签: ios objective-c xcode uinavigationcontroller master-detail

我制作了一个MasterDetailView应用程序。在TableView中,我有员工列表,在detailView上,我有一个欢迎屏幕,其中包含员工详细信息和其他详细信息。当我点击任何员工时,通过navigatorController,我用一个表单调用一个视图,我有一个按钮将表单的详细信息上传到服务器。我想在欢迎屏幕上显示上传的日期。我在userDefaults中保存日期,但是一旦我导航回来,我的方法就会被调用,viewDidlLoad或者DetailViewController的viewDidApper,所以我可以在欢迎屏幕上显示上传的日期。请帮我介绍如何将值传递回DetailViewController。

2 个答案:

答案 0 :(得分:1)

您可以发布NSNotification。但最好的解决方案是在“视图与表单”和“欢迎屏幕”之间建立委托关系,以便实际上可以直接与另一方交谈并将值传回。

查看Apple“Utility app”项目模板的结构,了解如何在两个视图控制器之间设置委托关系。

答案 1 :(得分:0)

在MasterDetailView应用程序中,MasterViewController始终是SplitViewController拥有的第一个视图。

所以,回传的一种方式是:

YourMasterViewController * yourMasterViewController = (YourMasterViewController*)[[self.splitViewController.viewControllers objectAtIndex:0] topViewController];
[yourMasterViewController someMethodLikeUploadCompleted];

我用它来让详细视图将消息发送回主人。