func setNavigation(titleText: String, subtitleText: String) {
// Need to update two labels inside of subtitleView
self.navigationItem.titleView = self.subtitleView
}
subtitleView
变量的类型为UIView
。视图只包含两个标签,我需要将这两个标签设置为函数参数值。如何通过subtitleView
循环查找这两个标签并更新其值?
我试过的这段代码找到了标签,但未能将文本值更新为“A”:
func setNavigation(titleText: String, subtitleText: String) {
for (var i = 0; i < self.subtitleView.subviews.count; i++) {
if self.subtitleView.subviews[i].isKindOfClass(UILabel) {
var labelReference: UILabel = self.subtitleView.subviews[i] as UILabel
labelReference.text = "A"
}
}
self.navigationItem.titleView = self.subtitleView
}
答案 0 :(得分:0)
您可以创建一个自定义类,该类是UIView的子类,并且包含2个UILabel的变量。
或者您可以遍历UIView的所有子视图并设置标签:
for view in self.subtitleView.subviews as [UIView] {
if let labelReference = view as? UILabel{
labelReference.text = "A"
NSLog("Updating Label")
}
}
如果文本没有更新,请检查上面的NSLog是否在输出中打印任何内容。如果没有,我相信你的UILabel可能是零。