标签: ios architecture uitabbarcontroller observer-pattern notificationcenter
应用有一组配置了UITabBarController的屏幕(标签) 每个标签都有自己的UINavigationController个实例 每个UINavigationBar都有一个带下拉列表的按钮。选择下拉列表中的行应触发某些contentReload中的UIViewController事件并更新UINavigationBar。
UITabBarController
UINavigationController
UINavigationBar
contentReload
UIViewController
同步应用的多个标签的最佳方法是什么? 我有多种选择:
观察者模式:创建一个State类来存储共享 state(当前选择了哪个项目)并将其传播到所有项目 观察员
State
使用NotificationCenter并订阅所有相关对象以进行更改。
NotificationCenter
在所有控制器之间共享State的实例,使用KVO监控更改。
KVO
对一种方法是否优先于另一种方法?或者是否有处理此类应用状态转换的标准模式?
UI示例,每个控制器都可以访问下拉列表: