2009-07-10 83 views
1

我遇到了我正在處理的iPhone應用程序的問題。 。在沒有用戶交互的情況下訪問UILabel插座

它使用稱爲無線單獨上課的時候流的標題被更新其流站中,它調用回RadioViewController與方法updateTitle:

- (void)updateTitle:(NSString *)newTitle 
{ 
    NSLog(@"update title called with title: %@", newTitle); 
    [self.nowPlaying setText:newTitle]; 
} 

出於某種原因,我可以」似乎現在得到更新。如果我從viewDidLoad調用setText,那麼它工作正常。

而且,與任何類型的用戶交互,按鈕或其他什麼東西,是否文本更改罰款,如:

- (IBAction)playButton:(id)sender 
{ 
[self.nowPlaying setText:@"now playing test"]; 
} 

nowPlaying在XIB和設置鏈接起來這樣:

IBOutlet UILabel  *nowPlaying; 
@property(nonatomic, retain) UILabel *nowPlaying; 

而且updateTitle是設置爲

- (void)updateTitle:(NSString *)title; 

的代碼生成和運行正常,沒有錯誤。但UILabel只是沒有改變。

+0

那麼updateTitle會被調用嗎(即,你看到那條日誌消息)嗎?如果沒有,你應該在RadioViewController中尋找上游來確保代碼路徑已經到達。 – 2009-07-10 18:43:36

+0

是的,日誌消息被輸出。此外,我有多個視圖設置,它會改變任何東西。 – 2009-07-10 18:45:28

回答

0

設置標題後,NSLog self.nowPlaying.title以確保它已更改。

您可能需要明確的[self.nowPlaying setNeedsDisplay];來強制更新。

如果沒有,請進行正常的調試以確保self.nowPlaying是一個真正的對象,等等。您確定現在的播放已連接到IB的正確標籤嗎?

0

嘗試編輯您的updateTitle方法如下:

NSLog(@"Update title will update %@ with %@", self.nowPlaying, newTitle); 
[self.nowPlaying performSelectorOnMainThread:@selector(setText:) withObject:newTitle waitUntilDone:NO]; 

我中有你正在更新對未在許多情況下,使用支持的後臺線程標題的感覺。

相關問題