我第一次在我的应用程序中使用UISplitViewController。主视图控制器是表视图控制器,而详细视图控制器只是纯视图控制器。
为了从母版到详细信息进行通信,我将详细信息设置为母版的代表。但是我还需要主服务器能够响应详细信息中的更改(相应的表视图单元格的内容将更新以反映更改。)
主人也可以作为细节的代表吗?还是这是不好的编程习惯?有更好的方法吗?
感谢您的任何建议。
最佳答案
您可以提供特定于模型的委托协议,这两个控制器都共享该协议。该协议可以使用itemContentDidChange:withIndex:
等方法,为侦听器提供有关模型更改的信息。如果您将两个控制器都注册为共享模型的委托,并且都实现了此共享协议,则将删除跨控制器依赖性,而不会引入任何新的依赖性。
但是,这只是我的意见,这是相当主观的。您的方法也非常好-我认为主控者同时充当细节的代表是绝对可以的,因为细节是主控者的代表。最好给每个控制器一个指向另一个的指针,因为您无需考虑保留周期。