【发布时间】:2014-08-05 17:46:34
【问题描述】:
我有自定义 UIButton,它通过协议以编程方式与 ViewController 方法交互(触发)。但是按钮的行为必须依赖于放置的 ViewController。我这样做是为了尽量减少 ViewControllers 本身的代码量,因为按钮必须保持不变并具有相同的功能(导航)。 在 UIButton 的自定义类中有什么方法可以获取它所在的 ViewController 吗?
【问题讨论】:
-
这不是你想做的。相反,将属性添加到按钮类。然后每个视图控制器可以适当地设置属性。该按钮不应该知道任何视图控制器的任何信息。
-
关键思想是根本不用VC写代码。在您的情况下,我必须重写 VC 类,但是,只重写一个类(因为只需要一次自定义行为)就可以了,问题就在这里:按钮被放置在情节提要上,除了协议之外没有任何编程连接。那么,如果我只有一个需要自定义行为的 VC,如何从 VC 端访问按钮?
-
VC 可以通过插座或属性访问其视图。在 MVC 中,视图永远不应该知道它的控制器。
-
从这个角度来看,我的自定义 UIButton 是控制器还是严格来说是视图?它以编程方式创建和隐藏一些按钮。该按钮会触发相应 VC 上的操作。
标签: ios objective-c uiviewcontroller uibutton