【问题标题】:Passing values back to DetailViewController将值传回 DetailViewController
【发布时间】:2014-03-05 18:55:18
【问题描述】:
我制作了一个 MasterDetailView 应用程序。在 TableView 中,我有员工列表,在 detailView 中,我有一个欢迎屏幕,其中包含员工详细信息和其他详细信息。当我通过 navigatorController 单击任何员工时,我会调用一个带有表单的视图,其中有一个按钮可以将表单的详细信息上传到服务器。我想在欢迎屏幕中显示上传日期。我将日期保存在 userDefaults 中,但是一旦我返回,我的方法都不会被调用,viewDidlLoad 或 DetailViewController 的 viewDidApper,所以我可以在我的欢迎屏幕中显示上传的日期。请帮助我了解如何将值传递回 DetailViewController。
【问题讨论】:
标签:
ios
objective-c
xcode
uinavigationcontroller
master-detail
【解决方案1】:
您可以发布 NSNotification。但最好的解决方案是在“带有表单的视图”和“欢迎屏幕”之间建立一个委托关系,这样一个人就可以直接与另一个人对话并将值传回。
查看 Apple 的“实用程序”项目模板的结构,了解如何在两个视图控制器之间建立委托关系。
【解决方案2】:
在 MasterDetailView 应用程序中,MasterViewController 始终是 SplitViewController 拥有的第一个视图。
因此,一种回复方式是:
YourMasterViewController * yourMasterViewController = (YourMasterViewController*)[[self.splitViewController.viewControllers objectAtIndex:0] topViewController];
[yourMasterViewController someMethodLikeUploadCompleted];
我用它来让详细视图将消息发送回主视图。