nip*_*ese 0 xcode uilabel swift
我只是想通过segue将文本发送到另一个ViewController上的UILabel:
let controller = segue.destinationViewController as! DetailViewViewController
controller.detailViewLabel.text = "Hello!"
Run Code Online (Sandbox Code Playgroud)
但在执行时赛格瑞,detailViewLabel是nil每一次.
但是,如果将字符串发送到新的var类型string,然后分配detailViewLabel.text给新的字符串viewDidLoad,它可以正常工作.
例如,这工作正常:
var detailViewLabelText: String!
@IBOutlet weak var detailViewLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
detailViewLabel.text = detailViewLabelText
// Do any additional setup after loading the view.
}
Run Code Online (Sandbox Code Playgroud)
为什么我不能直接将字符串发送到via a segue 的text属性UILabel?
视图控制器中的出口在第一次加载视图时才会连接.view第一次访问UIViewController 的属性时会加载视图.
因此,如果在尝试在标签上设置文本之前强制加载视图,则代码应该有效,例如
let controller = segue.destinationViewController as! DetailViewViewController
let _ = controller.view
controller.detailViewLabel.text = "Hello!"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
402 次 |
| 最近记录: |