Swift 从 xib IBOutlets 加载 UIViewController nil
Swift load UIViewController from xib IBOutlets nil
我正在拔掉我剩下的头发!
我有一个带有匹配 .xib 文件的 UIViewController。在 .xib 中,我有一个 IBOutlet,它是我在界面生成器中创建的,名为 "titleText"
在我的一段代码中,我有以下几行:
let fooVC = FooViewController(nibName: "FooViewController", bundle: Bundle.main)
fooVC.titleText = "TEST"
viewController "seems" 加载正常,我得到了正确类型的对象,但 IBOutlets 没有初始化。
我是否需要执行额外的步骤来初始化我可能拥有的任何 IBOutlets?
这一定很简单,对吧?!
在视图加载之前,插座为零。所以只需创建另一个变量并存储标题字符串,如下所示
class FooViewController: UIViewController {
@IBOutlet titleText:UILable!
var titleString:String?
override func viewDidLoad() {
super.viewDidLoad()
titleText.text = titleString
}
}
使用:
let fooVC = FooViewController()
fooVC.titleString = "TEST"
我正在拔掉我剩下的头发!
我有一个带有匹配 .xib 文件的 UIViewController。在 .xib 中,我有一个 IBOutlet,它是我在界面生成器中创建的,名为 "titleText"
在我的一段代码中,我有以下几行:
let fooVC = FooViewController(nibName: "FooViewController", bundle: Bundle.main)
fooVC.titleText = "TEST"
viewController "seems" 加载正常,我得到了正确类型的对象,但 IBOutlets 没有初始化。
我是否需要执行额外的步骤来初始化我可能拥有的任何 IBOutlets?
这一定很简单,对吧?!
在视图加载之前,插座为零。所以只需创建另一个变量并存储标题字符串,如下所示
class FooViewController: UIViewController {
@IBOutlet titleText:UILable!
var titleString:String?
override func viewDidLoad() {
super.viewDidLoad()
titleText.text = titleString
}
}
使用:
let fooVC = FooViewController()
fooVC.titleString = "TEST"