2009-07-10 88 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]; 

我中有你正在更新对未在许多情况下,使用支持的后台线程标题的感觉。

相关问题