大家好,謝謝你。我試圖在視圖重新前移到前景時通過代碼更改ViewController上UILabel的文本屬性。我在AppDelegate.m文件中使用「applicationDidBecomeActive」來調用ViewController.m上的方法,這是有效的。問題是,我調用的方法或「ViewDidLoad」方法都不會在設置應用程序更改設置後更新UIlabel.text。文本保持不變,就像它從上次更新發送字符串一樣。我每次從設置包中獲取一個NSUserDefault值以包含在文本字符串中。獲取返回OK。 UILabel只是不會更新。只是FYI我在調用「viewDidLoad」的自我視圖之前調用同步。爲什麼我的UILabel.text無法更新?
爲了澄清,當「viewDidLoad」方法在首次啓動時運行時,它工作正常。只有在點擊主頁按鈕後,更改設置應用程序中的設置,然後返回到我的應用程序,UILabel lblResultTitle.text現在不會更新。 請請幫助...
這裏是在viewDidLoad中的代碼:
-(void) viewDidLoad
{
NSUserDefaults *settings = [NSUserDefaults standardDefaults];
self.lblResultTitle.text = [NSString stringWithFormat:@"Speed %@ =", [settings stringForKey:kunit]] ;
[super viewDidLoad];
}
我的猜測是'self.lblResultTitle'是零或沒有連接任何東西。先檢查一下。另外,如果您想要經常更新標籤(即不僅僅是在第一次加載時),請不要將該標籤更新代碼放在'viewDidLoad'中!把它放在別的地方(在一個新的函數中)並讓'viewDidLoad'調用這個新函數。 – 2012-04-18 04:53:10
感謝您的及時響應邁克爾。在屏幕上顯示視圖後,我可以從任何方法成功更新它。所以我相信這個連接是好的。 Xcode在IBOutlet上顯示一個實心圓。我將嘗試從下面的「ViewDidLoad」調用一個方法。 – 2012-04-18 04:58:52
好的,我添加了一個新的方法,從「viewDidLoad」調用,並將代碼移到新的方法。同樣的結果,它第一次工作,但不會在隨後的... – 2012-04-18 05:04:57