我有一个基类
MyViewController: UIViewController
由MyViewController.xib初始化,带有一些插座。我只在MyViewController.xib中将File Owner类设置为MyViewController
,MyViewController.swift中没有任何init方法(所有都继承自UIViewController
),并且后续行正常工作:
let vc = MyViewController()
设置了视图属性,设置了出口。
我希望继承MyViewController
:
SecondViewController: MyViewController
{
override init()
{
super.init()
}
required init?(coder aDecoder: NSCoder)
{
super.init(coder: aDecoder)
}
}
现在我希望这行
let vc = SecondViewController()
将创建视图控制器,其视图和出口继承自MyViewController
,但vc中的所有出口都是零。看起来现在错过了MyViewController.xib文件。我做错了什么?
答案 0 :(得分:6)
您无法扩展xib文件。 SecondViewController
应该有自己的xib文件和自己的出口。您可以在基类MyViewController
中定义公共UI组件,并为您创建的每个xib将ui组件直接链接到基类。
例如,如果所有视图控制器中都有一个通用的自定义后退按钮,请在基类中添加插座定义,并为每个xib文件添加UIButton
并将其插座设置为基类。