2013-03-12 63 views
3

我有一個主視圖控制器顯示在屏幕上和一個類(委託)在後臺運行獲取職位。當我得到結果時,我調用視圖控制器中的委託方法來更新屏幕上的標籤。我嘗試了幾種方法,但仍然沒有更新屏幕。self.view setNeedsDisplay和self.view setNeedsLayout不工作

這裏是方法:

-(void) updateDisplay 
{ 

    NSLog(@"%@",myPosition.currentArea); 
    _area.text = [NSString stringWithFormat:@"area = %@",myPosition.currentShopArea]; 


    //[self.view performSelectorOnMainThread:@selector(setNeedsDisplay) withObject:nil waitUntilDone:YES]; 
    [self.view setNeedsDisplay]; 
    //[self.view setNeedsLayout]; 
} 

我檢查控制檯,它顯示了正確的區域,但在屏幕上仍呈現空。我嘗試了所有三種方式(上面註釋),但沒有一個更新屏幕。

回答

2

您可以嘗試兩兩件事:,它正在訪問UIKit,所以最好這樣做是正確

[delegate performSelectorOnMainThread:@selector(updateDisplay) withObject:nil waitUntilDone:YES]; 
到底

;:

  1. 調用主線程updateDisplay

  2. 如果沒有幫助,請嘗試使用:

    [_area setNeedsDisplay]; 
    

    在這種情況下,如果是可取的調用主線程的方法。

+0

它的工作原理,謝謝 – Ali 2013-03-12 10:52:26