2012-06-23 42 views
0

我在分割視圖控制器的主視圖中有一個標籤欄控制器。我向該標籤欄控制器添加一個子視圖來顯示一些信息。我不使用模態視圖,因爲我不想要模態行爲,我需要該子視圖在主視圖中顯示。如何重新繪製標籤欄控制器顯示的視圖

此信息視圖的顯示可能由其他視圖控制器中的任何視圖控制器觸發,具體取決於當時顯示的內容。 (例如,在地圖上的公開按鈕列表中單擊單元格。)

有時,當我關閉此信息子視圖時,標籤欄控制器顯示的視圖爲空。它通常是堅實的背部或白色。我可以切換選項卡,當我回到我所在的選項卡時,視圖繪製得當。

我想用setNeedsDisplay方法上的觀點去嘗試,所以我想這是我的標籤欄控制器類中:

- (void) redrawCurrentTab { 
    UIView *currentView = [[self.viewControllers objectAtIndex:self.selectedIndex] view]; 
    [currentView setNeedsDisplay]; 
} 

我檢查了currentView的值是應顯示的看法正確。但是這個觀點並沒有像我希望的那樣被重新繪製。

所以,我有兩個問題,我可以看到:

  1. 我可能不知道如何setNeedsDisplay作品。
  2. 我正在尋找更好的方法來完成此信息視圖的顯示而不是作爲標籤欄控制器的子視圖的建議。

回答

0
// This is a hack, because the current tab is disappearing when the details view is withdrawn. 
// So it needs to cycle to another view and then back. 
- (void) redrawCurrentTab { 
    if (currentIndex == 0) 
     self.selectedIndex = 1; 
    else 
     self.selectedIndex = 0; 
    self.selectedIndex = currentIndex; 
} 

currentIndex在委託方法設置tabBarController:didSelectViewController:

相關問題