xcode - 为什么我不能将值发送到另一个 ViewController 上的 UILabel?

标签 xcode swift uilabel

我只是想通过 segue 将文本发送到另一个 ViewController 上的 UILabel:

let controller = segue.destinationViewController as! DetailViewViewController
controller.detailViewLabel.text = "Hello!"

但是当执行segue时,detailViewLabel每次都是nil

但是,如果将字符串发送到 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.
}

为什么我不能通过 segue 直接将字符串发送到 UILabeltext 属性?

最佳答案

在第一次加载 View 之前, View Controller 中的 socket 不会连接。当第一次访问 UIViewController 的 view 属性时加载 View 。

因此,如果您在尝试设置标签上的文本之前强制加载 View ,您的代码应该可以工作,例如

let controller = segue.destinationViewController as! DetailViewViewController
let _ = controller.view
controller.detailViewLabel.text = "Hello!"

关于xcode - 为什么我不能将值发送到另一个 ViewController 上的 UILabel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36095633/

相关文章:

objective-c - Xcode:Interface Builder XIB 编译器错误

ios - 从开发人员门户获取团队列表 - 超时

ios - 如何将 long 存储在 Swift 数组中?

ios - 为什么 userLocation 在 Mapbox 上返回 (-180.0,-180.0) 坐标?

iphone - 非常简单的 iPhone 应用程序在 UILabel settext 上崩溃

ios - 具有多个文本字段的 NS 谓词

swift - Core Data 代码生成器如何决定是否将属性设为可选?

php - 使用 REST API 快速上传图片

ios - 从 UITableView 更改 viewController 时将可选值显示为 'nil'

ios - objective-c - 标签中的多种颜色