iOS Swift子类化由xib(nib)文件初始化的ViewController

时间:2016-04-05 07:36:37

标签: ios swift uiviewcontroller

我有一个基类

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文件。我做错了什么?

1 个答案:

答案 0 :(得分:6)

您无法扩展xib文件。 SecondViewController应该有自己的xib文件和自己的出口。您可以在基类MyViewController中定义公共UI组件,并为您创建的每个xib将ui组件直接链接到基类。 例如,如果所有视图控制器中都有一个通用的自定义后退按钮,请在基类中添加插座定义,并为每个xib文件添加UIButton并将其插座设置为基类。