我的应用程序如下所示。我正在配置从第一个场景到第二个场景的转换,当用户点击摇滚按钮时,使用摇滚方法(没有segue)。但是当我运行应用程序时,我收到以下错误。 请告诉我这是什么问题?是故事板对象,还没有创建引用的标签吗?
答案 0 :(得分:0)
secvc
或其label
属性均为nil
。在该行上设置断点并在该行运行之前检查每个值,以查看哪个是nil
。
答案 1 :(得分:0)
您无法设置文本,因为尚未创建标签,这是因为您尝试时未加载第二个ViewController的视图,因此设置标签文本
可能的解决方案是添加
var text: String!
在你的第二个视图控制器中。在rock函数中设置此var:
secvc.text = "rock ..."
稍后在第二个ViewController的viewDidLoad()
(现在加载视图并创建标签)功能中设置标签文本:
label.text = text
答案 2 :(得分:0)
一个很好的通用方法是在视图控制器上定义NSDictionary属性,然后简单地从调用者设置该属性。然后,在viewDidLoad中,您可以访问字典并从dict中的各个字段填写任何窗口小部件数据。这尊重GUI小部件的生命周期,因为只交换数据,所以更容易。不要以这种方式将refs传递给任何UI *对象,并且避免使用ref count循环将自己射入脚中。