2011-08-31 167 views
0

長時間讀者,第一次問阿?推視圖時隱藏標籤欄

所以基本上我有每個標籤導航控制器(它們每一個下井的意見幾個層次)我目前隱藏標籤欄時,我需要使用此代碼標籤欄的應用程序:

MyViewController *myVC = [[MyViewController alloc]initWithNibName:@"MyViewController" bundle:nil]; 

myVC.hidesBottomBarWhenPushed = YES; 

[self.navigationController pushViewController:myVC animated:YES]; 

[myVC release]; 

然而,這工作得很好,在我還沒有在IB創建的導航控制我的標籤之一,而是,編程

下面是編程創建導航控制器代碼:

UINavigationController * navigationController = [[[UINavigationController alloc] init] autorelease]; 

self.segmentsController = [[SegmentsController alloc] initWithNavigationController:navigationController viewControllers:viewControllers]; 

self.segmentedControl = [[UISegmentedControl alloc] initWithItems:[viewControllers arrayByPerformingSelector:@selector(title)]]; 
    self.segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar; 

[self.segmentedControl addTarget:self.segmentsController 
           action:@selector(indexDidChangeForSegmentedControl:) 
        forControlEvents:UIControlEventValueChanged]; 

[self.view addSubview:navigationController.view]; 

我在這裏創建的是一個帶有分段控件的導航欄,當我點擊一個列表項目時,我想在其中一個分段控件視圖(這是一個列表)中推入視圖,我想隱藏標籤欄,但沒有任何使用這個問題開始時的代碼,我假設它是如何做的導航控制器,視圖推和彈出就好,但TabBar保持可見,當我想隱藏它,沒有任何人有任何想法如何我可以隱藏這個標籤欄?

感謝您的任何反饋提前!

編輯:作爲'新用戶',我無法提交圖片以幫助查看問題,數字。哦,希望這裏發生的事情對你們來說不是太模糊。

+0

你可以用'[viewControllers valueForKeyPath:@「@ unionOfObjects.title」]'替換'[viewControllers arrayByPerformingSelector:@selector(title)]' oid依賴於外部代碼。在這裏看到答案:http://stackoverflow.com/a/16569259/296446 – Robert

+0

http://stackoverflow.com/a/36148064/3078925 –

回答

1

很難得到你想要的代碼你已經給出的代碼(並沒有屏幕截圖!),但它看起來像問題可能是,你只是添加導航控制器的視圖直接作爲子視圖,而不是將nav控制器添加到視圖控制器層次結構中。

因此,而不是

[self.view addSubview:navigationController.view]; 

使用

[self.navigationController pushViewController: navigationController animated: NO]; 

當然,這將意味着您的視圖控制器本身必須是一個導航控制器堆棧(雖然你總是可以隱藏導航如此直觀地看起來它會看起來一樣)

+0

試過你的建議,但推navController只是拋出一個空白的屏幕。我的假設是,在視圖中我試圖隱藏TabBar,它實際上並沒有訪問標籤欄。 (標籤欄是整個根視圖) – KyleDavidson

+0

奇怪的是,隱藏標籤欄代碼在使用我在mainWindow.xib中創建的導航控制器的選項卡中工作得很好 – KyleDavidson

相關問題