viewWithTag没有将文本加载到视图

时间:2015-06-20 23:12:14

标签: ios swift

我有一个功能包括以下行:

var chanceLabel : UILabel? = self.view.viewWithTag(uni_tag) as? UILabel

我的故事板是这样构建的,其中TableViewController是视图控制器的子视图。

每个机会标签都被标记,这样如果一个人的GPA达到一定水平,它就会返回一个字符串,以显示每个大学的入学机会。你可以看看例如伯克利,它是“不太可能”

storyboard structure

目标是根据GPA动态更新标签。我把这个函数放在'viewDidAppear'中,它所做的一切都清楚了标签 - 这只适用于那些高于大学的大学 - 即使我把字符串输入其中:

chanceLabel?.text = "High"

我正在使用XCode 6.1.1,目前无法更新,因为这是我大学项目的一部分。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

表格单元格是根据数据和委托动态加载的。最重要的是,延迟加载在调用之前不会加载任何内容。我认为您的答案是需要阅读视图并查看控制器编程指南,以便您了解为什么您的观点为零。如果tableView加载了每个视图,代码将完美地工作,但你没有等待它,这不是如何将数据添加到表中。

如果改变视觉状态而不是在表格中使用代表,通过中心点将单元格移动得太低或太高,Apple会崩溃您的程序。

我知道,我在这里有点苛刻,但是我不想让你四处乱跑,以为苹果在它们不是它们时就会破坏,导致代码闻起来,这让你很难在将来

答案 1 :(得分:0)

将标签放入:

解决了这个问题
override func viewDidLayoutSubviews()

失败的原因是因为TableViewController是主视图(View Controller)的子视图,并且利用“viewDidAppear”仅聚焦主视图的框架。但是,在故事板设计的情况下,viewDidLayoutSubviews是更好的解决方案。