我想在修改 IBOutlet 属性的框架中创建一个父类(super class)。但是,我希望将子类连接到 Storyboard,因为我不想将控件连接到框架中的类。
例如,我框架中的父类(super class)如下所示:
public class MySuperDetailViewController: UIViewController {
@IBOutlet public weak var titleLabel: UILabel?
@IBOutlet public weak var dateLabel: UILabel?
@IBOutlet public weak var contentWebView: UIWebView?
...
}
然后在子类中,我想将控件拖动到子类上。所以我必须通过覆盖来公开这些属性。我正在尝试这样做,但它不允许我:
class MyDetailViewController: MySuperDetailViewController {
@IBOutlet weak var titleLabel: UILabel?
@IBOutlet weak var dateLabel: UILabel?
@IBOutlet weak var contentWebView: UIWebView?
}
我得到的错误是:
Cannot override with a stored property 'titleLabel', 'dateLabel', and 'contentWebView'
。我怎样才能做到这一点或更好的方法呢?
最佳答案
不要试图在子类中重新创建变量; IBOutlet
变量仍然存在。您仍然可以通过多种方式在 Interface Builder 内部连接它们。
MyDetailViewController
注意:所有
UIViewController
子类都继承了一个名为 view
的 IBOutlet ;此属性已存在于 Interface Builder 中,即使您无法单击 + 拖动来连接它。关于ios - 从父类(super class)覆盖 IBOutlet 属性?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36392079/