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
}
最佳答案
您可以创建一个自定义类,该类将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是否会将任何内容打印到输出。如果没有,我相信你的UILabels可能是零。