早上好。
在过去的一年里,我学习了很多教程,并且看到了几种使用 Storyboards 将引用传递回 View Hierarchy 的方法。我想知道一些最佳实践是什么,更重要的是使用以下方法的任何陷阱:
协议(protocol) - subview 实现一个协议(protocol),父 View 将自己设置为委托(delegate)并响应消息。这可用于将信息传回委托(delegate)。 Child 不需要知道它被调用的原因,它会完成它的工作,并发回它被要求的任何信息。
具有模型引用的 subview Controller 的公共(public)属性。在 segue 上,您检索对目标 View Controller 的引用。该 View Controller 具有公开公开的模型属性。您传递对模型的引用。我个人喜欢这种方法 - 看不到任何真正的陷阱。然后当 child 进行更改时,模型会直接更改。在
[self.navigationController dismissViewControllerAnimated:YES]
被调用时,或者您导航关闭/关闭 View Controller 时,您在模型中拥有所需的信息。还有什么吗? - 其他人有好主意,我很想听听。
感谢任何人对此的投入。我知道给猫剥皮的方法总是不止一种,我只想干净快速地给猫剥皮。 (-对不起猫)
史蒂夫
最佳答案
为了完整起见,除了您列举的两个选项之外,还有几个其他选项:
使用 unwind segue(iOS 6 及更高版本),您可以通过
prepareForSegue
将数据传递到“目的地”(您要展开到的 Controller );为您的主模型对象使用单例;
使用 Core Data(或 SQLite)进行持久存储;或者
使用通知或键值观察(尽管这对于将数据更新传达给多个对象要好得多)。
就我个人而言,当呈现 View Controller 想要通知呈现 View Controller 一些信息时,我通常会使用协议(protocol),但这些技术中的每一种都有其各自的用途。
关于ios - 最佳实践?从 segues 传回对象引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17133855/