这是一个设计模式问题。
我正在构建一个“框架”,根据当前显示的ViewController,框架需要将UIButton注入该ViewControllers视图。
我不希望ViewControllers明确地“了解”“框架”,所以我最初使用的是委托模式,但需要“ over-seer”来确保仅加载特定的视图控制器时,他们知道“框架”。
但是,我想到是否可以通过协议确保所有删除的ViewController触发相同的两个 custom NSNotifications,即subscribeToRequestButton和unsubscribeForButton,那么“框架”会侦听这些,并在收到它们后,将视图控制器对象(通过Notification)传递给它,以便它可以注入按钮。
从而防止视图控制器了解或引用“框架”;它只是知道,如果想要的是该按钮,则触发这两个通知,并确保它实现了触摸该按钮的方法。
这是可能的还是有更好的方法?
关键问题是
a)我无法让需要按钮的视图控制器了解框架;因为他们从来没有机会被某个经理类传递给他们,并且
b)直到接收到需要将按钮注入某些东西的通知时,框架才知道视图控制器的存在。
编辑:
我将仅使用具有一些公共访问器方法的单例模式来传递数据或进行查询。