在自定义视图上向 UIButton 添加目标时,我有一个关于最佳实践的问题。目前,我在我的视图的加载方法中创建我的 UIButton,并将我的视图分配为按钮目标。我的观点是在按下按钮时处理逻辑,我突然想到这不是好的 MVC。
所以,我宁愿让我的控制器提供自己作为按钮的目标和动作,但是我不确定实现这一点的最佳方法。
视图可以使用对控制器的引用进行初始化,或者可以使用 UIResponder 的 nextresponder 获取控制器,并使用此引用设置目标。但是,这可能会导致循环保留,并且需要我的视图了解我的控制器上存在的方法,这比我希望的更紧密耦合。
或者,我可以为视图上的每个 uibutton 创建一个设置器。但是,如果我有多个按钮,或者包含带有按钮的自定义子视图的视图,这很快就会变得笨拙。我还可以为每个按钮创建属性,但这也很笨拙,并且允许控制器访问超出其需要的内容(它只需要设置目标,不需要能够获得对按钮的任何引用)。
最后,我可以为控制器中的所有按钮创建和添加目标,并在初始化时将其传递给视图,但这似乎也违反了 MVC 的角色。
似乎这是一种常见的情况,这些做法是否被认为是标准的,还是有更好的解决方案?