UISplitViewController主/细节通信

Dav*_*vid 12 xcode cocoa-touch objective-c ipad ios

我刚刚开始玩UISplitViewController - 我已经拼凑了各种教程中的一些代码,但是我很难看到如何将数据从Master发送到Detail.我正在创建一个RSS阅读器,只是为了向自己说明它应该如何工作.我已经解析了一个RSS源和填充MasterViewController有一个UITableView,但我坚持搞清楚如何采取连续点击加载相应的文章在detailViewController一个UIWebView.任何提示都表示赞赏.

bry*_*mac 12

一个好方法是使用代表.这允许一个视图调用另一个视图提供的回调.在这种情况下,详细视图依赖于主存在,因此使回调很好.我会避免让他们直接引用彼此并直接读取彼此的数据.

委托在xcode ios项目中做了什么?

这是UISplitViewController的教程,它就是这样做的(在master/detail之间委托):

http://www.raywenderlich.com/1040/ipad-for-iphone-developers-101-uisplitview-tutorial

具体这一部分:

用右边钩住左边

是时候扮演红娘并将这两面勾起来了.

如何最好地实现这一目标有许多不同的策略.在拆分视图应用程序模板中,它们为左视图控制器提供指向右视图控制器的指针,左视图控制器在选择行时在右视图控制器上设置属性.右视图控制器会覆盖该属性,以便在更新属性时更新视图.这工作正常,但我们将遵循UISplitViewController类引用中建议的方法 - 使用委托.基本的想法是我们要用一个方法定义一个协议 - "selectedBotChanged."我们的右侧将实现这个方法,我们的左侧将接受一个想要了解这个的人的代表.

另一种方法是拥有一个共享模型 - 有点像带有通知的单例,触发不同的视图,根据通知中的数据或者根据模型更改查询模型来更新自己.在有多个视图的应用程序中,这有时会更好,这些视图不依赖于彼此,只是以各种方式冒泡数据(这不是这种情况 - 详细视图依赖于现有的master,因此委托很好).