我正在構建一個由UINavigationController控制多個屏幕的大型分層iPhone應用程序。其中一個屏幕能夠以兩種不同的格式顯示內容(我使用IB創建的UITabBar在它們之間切換),並且我構建了一個視圖,該視圖添加了基於活動主體的子視圖(從nib文件加載)標籤。從子視圖的控制器中隱藏超級視圖控制器的UINavigatonBar?
這些子視圖中的每一個都包含一個搜索欄,當它被點擊時需要將導航欄推開。導航欄只能從子視圖的superview控制器訪問,所以我已經向每個子視圖的控制器添加了superview的控制器類的前向聲明。當子視圖被加載時,其「superViewController」屬性被設置。
通常,每個搜索欄會根據需要自動隱藏導航欄,但我需要自己實現此功能,因爲欄位於搜索欄上方的視圖中。
-(void)hideNavBar {
[self.navigationController setNavigationBarHidden:TRUE animated:TRUE];
}
和我也曾嘗試:我曾嘗試通過在
- (void)searchDisplayController:(UISearchDisplayController *)controller willShowSearchResultsTableView:(UITableView *)tableView
方法,其中 「hideNavBar」 定義使用
[self.superViewController hideNavBar];
在superViewController.m如下這樣做直接隱藏吧
[self.superViewController.navigationController setNavigationBarHidden:TRUE animated:TRUE];
在這兩種情況下,酒吧都沒有任何改變。我必須告訴導航欄進行更新嗎?有沒有更好的方法來實現我想要的功能?
我知道向前聲明是否正常工作,因爲我可以使用預先
NewViewController *newViewController = [[NewViewController alloc] initWithNibName:@"NewView" bundle:nil];
[self.superViewController.navigationController pushViewController:newViewController animated:YES];
[newViewController release];
由於推新視圖到navigationViewController, 朱利安Ceipek
如果它的事項,導航欄被設置爲半透明的,以便子視圖在欄下方。
和@cone你有問題的答案嗎?如何解決這個問題呢?你可以幫我嗎?這是我的問題: - http://stackoverflow.com/questions/6381161/how-to-hide-superview-navigationbar-in-subview-in-ipad – 2011-06-17 07:33:34