我有一个基类
MyViewController: UIViewController
由MyViewController.xib初始化,带有一些出口。我只将MyViewController.xib中的File Owner类设置为MyViewController
,在MyViewControlller.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文件现在丢失了。我做错了什么?
您不能扩展xib文件。SecondViewController
应该有自己的xib文件和自己的outlet。您可以在基类MyViewController
中定义通用UI组件,并且对于您创建的每个xib,将UI组件直接链接到基类。例如,如果在所有视图控制器中都有一个通用的自定义后退按钮,请在基类中添加出口定义,并为每个xib文件添加UIButton
并将其出口设置为基类。