我有一个ViewController
,用于加载UIView(TempView
)作为子视图。
tempView = TempView(frame: CGRectMake(10, 10, view.frame.size.width, view.frame.size.height))
tempView.tempLabelText = "YAY"
view.addSubview(tempView)
tempView有一个变量和一个@IBOutlet
。
var tempLabelText : String?
@IBOutlet weak var tempLabel: UILabel!
我在print(tempLabelText)
课程的awakeFromNib()
内添加了一条声明TempView
及其打印nil
我希望能够从tempLabelText
将值更改为ViewController
,所以当我添加子视图时,标签会显示我声明的内容。我错过了什么?
我项目中的文件:
1. ViewController
- 创建tempView:TempView!
2. TempView.swift
- UIView类
3. tempView.xib
- .xib
内有一个标签。连接到TempView.swift的标签出口。
答案 0 :(得分:0)
awakeFromNib()
方法:
tempView = TempView(frame: CGRectMake(10, 10, view.frame.size.width, view.frame.size.height))
此时变量tempLabelText
尚未初始化。您只在下一行为此变量赋值。
答案 1 :(得分:0)
初始化视图时会调用awakeFromNib方法。在设置它的属性之前会调用它。