我遇到了一个奇怪的问题。
我正在尝试在返回视图控制器后更新UILabel。
当我返回视图控制器时,我做了一些工作,然后更新我的视图,但我的UILabel都没有更新。
我100%确定我正在使用主线程(甚至尝试使用dispatch_async强制它并获取主线程),但它仍然无效。
我也确定UILabel上的text属性正在更新,正如在lldb中使用print object命令所确认的那样,但它没有在屏幕上更新...
这是更改UILabel内容的行,非常香草:
[(UILabel *)[self.view viewWithTag:1] setText:_accountInfo[@"name"]];
这是该行执行后“po”的输出:
(lldb) po [self.view viewWithTag:1]
<UILabel: 0x165e87f0; frame = (20 12; 143 21); text = 'Testing Again'; clipsToBounds = YES; opaque = NO; autoresize = RM+BM; userInteractionEnabled = NO; tag = 1; layer = <CALayer: 0x165de750>>
顺便说一句,我正在使用ARC并部署到iOS 7。
如果您需要更多代码或任何信息,请说明。我开始对这个问题感到绝望了!
提前致谢。
编辑:忘记在首次设置视图时添加相同的代码。
答案 0 :(得分:1)
尝试使用这样......
UILabel *label = (UILabel *)[self.view viewWithTag:1];
label.text = _accountInfo[@"name"];
答案 1 :(得分:1)
这样做:
[((UILabel *)[self.view viewWithTag:1]) setText:_accountInfo[@"name"]];
答案 2 :(得分:0)
您需要为ios7设置动态字体 试试这个...
UIFontDescriptor *userFont = [UIFontDescriptor preferredFontDescriptorWithTextStyle:UIFontTextStyleBody];
float userFontSize = [userFont pointSize];
UIFont *font = [UIFont boldSystemFontOfSize:userFontSize];//[UIFont fontWithName:@"Helvetica" size:userFontSize];
[noteLabel setFont:font];
答案 3 :(得分:0)
完成以下步骤:
1)如果您已添加代码中的标签。检查您是否正在分配内存并初始化标签。
2)如果你有拖拽和如果您提供了正确的标签并完成了必要的插座连接,则在Interface Builder中删除标签。
3)检查标签和其他视图的标签是否没有冲突。
4)使用cmd + shift + k清除所有目标。
5)再次建造
OR
使用此方法检查是否为标签:
if ([[self.view viewWithTag:1] isMemberOfClass:[UILabel class]]) {
//Its a label
UILabel *label = (UILabel *)[self.view viewWithTag:1];
label.text=@"Hello World";
}
else {
//Its not a label
}
可能你应该尝试第二种选择。你将至少知道发生了什么......