swift - Xcode 从另一个 viewController 传递的变量设置标签的文本会导致崩溃

标签 swift xcode uitableview

这是呈现下一个 VC 的代码:

    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    print("dismiss completed")
    let user = self.users[indexPath.row]
    performSegue(withIdentifier: "toNewMessage", sender: self)
}

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    let indexPath = tableView.indexPathForSelectedRow

    var vc = segue.destination as! ChatLogController
    vc.user = self.users[(indexPath?.row)!]
}

这就是从之前的 VC 获取数据的变量:

var user: User? {
    didSet {
        print(user?.name)
        chatLogTitleLabel.text = user?.name
    }
}

当我尝试设置标签的文本时,它说它发现了一个零值,但是当我打印它时,它是正确的值,而不是零。我该如何修复它?

最佳答案

删除 didSet 并将其设置在 viewDidLoad

chatLogTitleLabel.text = user?.name

问题是这样的

vc.user = self.users[(indexPath?.row)!]

触发设置此时为零的标签,因为所有 socket 都为零,直到加载/呈现 vc

关于swift - Xcode 从另一个 viewController 传递的变量设置标签的文本会导致崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55221369/

相关文章:

ios - 录制语音的按钮操作

ios - 重新加载部分而不重新加载部分标题

ios - 如何添加约束以编程方式将两个 View 附加在一起?

ios - UITableViewCell中的UITextField插入后成为FirstResponder

xcode - 使用导航返回按钮放松 segue

ios - 无法从此设备 XCode 4.6.3 复制符号

ios - 在CustomCell中检测UIImageView上的触摸

ios - 为什么子 TableView Controller 对触摸和滚动没有响应?

ios - Swift 中多个过滤器的 Firebase 查询

ios - 我拿了一个 github 项目,他以编程方式添加了一个按钮,但我用界面生成器添加了它,但它不起作用