2013-01-09 40 views
-1

我有UILabel *lblTest。并且我在Interface Builder中将文本设置为“test”标签。如何找到在Interface Builder中设置的UILabel文本?

现在我通过代码设置lblTest文本为“新测试”。

所以,现在我想再次获得我已经在Interface Builder中设置的“测试”文本。

有没有办法巧妙地做到这一点?

注意:我不想做数行代码.... 期待单线解决方案。

在此先感谢。

+1

如果设置在您的viewdidload中通过代码标记文本“新文本”,然后它将始终显示“新文本”,除非您将标签文本标为“测试”或注释您的行 –

+0

您用“新测试”覆盖“测试”,并希望找到它以前设置的“测试”?你需要返回多少次迭代?你可以使用.placeholder作为初始字符串吗? – Bejmax

+0

@:Bejmax我期待着这样的代码“[NSString stringWithFormat:@”%@“,(NSString *)[[NSBundle mainBundle] objectForInfoDictionaryKey:@”CFBundleVersion“]]” –

回答

1

你要明白,在你Interface Builder中值将由代码代码重写你自己写。

所以,一旦你的代码已经改变了标签,你能恢复的Interface Builder的的值,如:

NSString* lblTestString = lblTestString.text; 

//now set your value from the code 
[lblTest setText:@"new Test"]; 

//and revert it to what was already in the interface builder 
[lblTest setText:lblTestString]; 

不过它没有真正任何意义..

+0

我已经考虑过最后一种做法。但我期待单线解决方案。 –

1

我想你想要的东西就像“撤消”功能。 没有特殊的方式来完成你描述的事情。 一件事你可以做的是:

  1. 存放在一个NSString变量中的第一个字符串设置标签文本为“新测试”

    NSString *oldString = lblTest.text; 
    
  2. 变化从代码的文本之前。

    self.lblTest.text = @"new test"; 
    
  3. 如果需要,请将其更改回旧字符串。

    self.lblTest.text = oldString; 
    
相关问题