2010-10-22 92 views
2

我有一個應用程序,我正在使用工具欄上的按鈕來調用視圖,但我將它切換到使用選項卡欄。更新UITabBar視圖?

使用的按鈕,我使用MainViewController.m下面的代碼來更新頁面上的價值和它工作得很好:

-(IBAction) loadSummaryView:(id) sender { 
[self clearView]; 
[self.view insertSubview:summaryViewController.view atIndex:0]; 
//Update the values on the Summary view 
[summaryViewController updateSummaryData]; 
[summaryViewController calculateData]; 
} 

然而,隨着標籤欄我想不出這個怎麼做。我嘗試將所有必要的代碼放在摘要視圖viewDidLoad中,它加載了初始值,但在另一個視圖中更改它們時不會更新這些值。

任何幫助表示讚賞。我在這方面有點新,所以請不要模糊,因爲我可能不明白答案。

謝謝。

回答

1

將您的代碼放在viewDidLoad中,只有在從nib加載視圖時纔會調用它。除非您的內存不足,否則此視圖將在應用程序的整個生命週期內保持加載狀態。

所以如果你需要每一個視圖將出現時間更新值,考慮代碼移動到的viewWillAppear

- (void)viewWillAppear:(BOOL)animated { 
    [super viewWillAppear:animated]; 

    // your stuff goes here... 
    [self updateSummaryData]; 
    [self calculateData]; 
} 
1

的覆蓋您可以在視圖的viewWillAppear:animated消息更新當前視圖:

如果你有正確安裝的一切,沒有什麼做的,在UITabBarController會顯示您的看法,您的將UIViewController收到viewWillAppear消息,在那裏你可以做你的更新:

- (void)viewWillAppear:(BOOL)animated { 
    [super viewWillAppear:animated]; 

    [self updateSummaryData]; 
    [self calculateData]; 
} 

我強烈建議閱讀View Controller Programming Guide for iOS,其中詳細描述了iPhone支持的主要接口範例。