具有来自nib的实例的UIViewController子类的便捷初始化器?

时间:2015-10-06 10:53:02

标签: ios swift uiviewcontroller

我正在尝试初始化名为UIViewController的{​​{1}}的子类。我有这个快速的课程:

TestController

}

我还有一个名为class TestController : UIViewController { let testString : String @IBOutlet weak var test: UITextField! required init(withString string: String) { self.testString = string super.init(nibName: nil, bundle: nil) } required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } 的nib文件, enter image description here

里面是TestController的一个实例。文件的所有者是none(灰色的NSObject),设计器中的UIViewController实例的类在身份检查器中设置为TestController。有UIViewController个实例作为出口。

enter image description here

问题是控制器没有从笔尖初始化(我认为),textField出口是零。

我的目标是允许通过自定义初始化程序以编程方式从nib初始化控制器的实例。我究竟做错了什么?

1 个答案:

答案 0 :(得分:0)

您有两个问题:首先,您的nib(或xib)未正确创建(您不应在界面构建器中看到<DoubleAnimation Duration="00:00:01" To="0" EnableDependentAnimation="True" Storyboard.TargetName="mainTextBlock" Storyboard.TargetProperty="FontSize"/> )。解决此问题的最简单方法是重新创建它:新文件 - &gt; Cocoa Touch类 - &gt;创建TestController的子类,不要忘记检查 UIViewController

第二个问题是您没有指定要加载的笔尖。您应该在初始化程序的Also Create a XIB file参数中指定它:

nibName

当您解决这两个问题时,我相信您的代码会正常运行。