我刚刚开始玩UISplitViewController - 我拼凑了各种教程中的一些代码,但是我无法看到如何将数据从Master发送到Detail。我正在创建一个RSS阅读器,只是为了向自己说明它应该如何工作。我已经解析了一个RSS提要并使用UITableView填充了MasterViewController,但是我很难搞清楚如何点击行并在detailViewController中的UIWebView中加载相应的文章。任何提示都表示赞赏。
答案 0 :(得分:11)
一个好方法是使用代表。这允许一个视图调用另一个视图提供的回调。在这种情况下,详细视图依赖于主存在,因此使回调很好。我会避免让他们直接引用彼此并直接读取彼此的数据。
What exactly does delegate do in xcode ios project?
这是UISplitViewController的教程,它就是这样做的(在master / detail之间委托):
http://www.raywenderlich.com/1040/ipad-for-iphone-developers-101-uisplitview-tutorial
特别是本节:
用右手勾选左边
玩红娘和勾手的时间 这两个方面在一起。
有很多不同的策略 最好的完成这个。在拆分视图应用程序模板中 给左视图控制器一个指向右视图控制器的指针, 并且左视图控制器在右视图上设置属性 选择一行时的控制器。右视图控制器 覆盖属性以在属性为时更新视图 更新。这很好,但我们将采用这种方法 在这里的UISplitViewController类引用中建议 - 使用 与会代表。基本的想法是我们要定义一个协议 单一方法 - “selectedBotChanged。”我们的右手会 实现此方法,我们的左侧将接受委托 有人想知道这个。
另一种方法是拥有一个共享模型 - 有点像带有通知的单例,可以根据通知中的数据触发不同的视图来更新自己,或者根据模型更改查询模型。在有许多视图的应用程序中,这有时会更好,这些视图不依赖于彼此,只是以各种方式冒泡数据(这不是这种情况 - 详细视图依赖于主存在,因此委托就可以了)。 / p>