我正在尝试初始化名为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文件,
里面是TestController
的一个实例。文件的所有者是none(灰色的NSObject),设计器中的UIViewController实例的类在身份检查器中设置为TestController。有UIViewController
个实例作为出口。
问题是控制器没有从笔尖初始化(我认为),textField出口是零。
我的目标是允许通过自定义初始化程序以编程方式从nib初始化控制器的实例。我究竟做错了什么?
答案 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
当您解决这两个问题时,我相信您的代码会正常运行。