2012-06-12 36 views
2

你好,我創造了appdelegate.when下載一個nsnotificationcenter完成它發送一個通知。我有我的一類活動的指標,我該怎麼隱藏它,當下載完成,但它不工作。我可以看到我的nslog,但它並沒有隱藏acitivyindicator。NSNotificationCenter不能活動的指標設置爲隱藏

這裏是我的代碼:

viewDidLoad中:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(refreshView:) name:@"loadingFinished" object:nil]; 

我的功能:

-(void)refreshView:(NSNotification*)notification 
{ 

    activity.hidden = YES; 
    self.view.userInteractionEnabled =YES; 
    NSLog(@"alles geladen zeiger wird geladen"); 



} 

回答

4

,如果你在其他任何線程,那麼它將無法工作CZ UI在內線無法正常工作。使用此

-(void)refreshView:(NSNotification*)notification 
{ 


dispatch_async(dispatch_get_main_queue(), ^{ 
activity.hidden = YES; 
    self.view.userInteractionEnabled =YES; 

     });  
    NSLog(@"alles geladen zeiger wird geladen"); 



} 
+0

謝謝你,可以完美運行! –

0

通知回調可能不會在主線程中調用,但所有的UI更新必須在主線程中完成。所以,在你的通知回調,使用[self performSelectorOnMainThread:@selector(refreshViewFromMainThread)],並宣佈了新的方法:

- (void)refreshViewFromMainThread 
{ 
    activity.hidden = YES; 
    self.view.userInteractionEnabled = YES; 
}