2011-10-11 41 views
1

我有一個登錄視圖,接受用戶名和密碼。成功驗證後,我將提供一個帶有3個選項卡的標籤欄視圖(IBOutlet)的視圖控制器。每個標籤欄視圖控制器都有導航控制器(但在任何視圖控制器中都沒有表格視圖)。 Usign xib,我添加了標籤欄控制器對象,然後在標籤欄樹下添加了導航控制器,並相應地向3個導航控制器添加了視圖控制器。 成功驗證後,我打電話給 [self presentViewController:myViewController animated:YES] 這是如何顯示。iPhone - 應用程序與標籤欄控制器 - 顯示的差距頂部

Screen shot

在myViewController的viewDidLoad,我添加標籤欄如下:

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    [self.view addSubview:self.tabBarController.view]; 
} 

爲什麼上面的導航欄和下方的狀態欄上看到了差距。由於這種差距,底部的標籤欄正在被切割.......

+0

我不完全確定你在做什麼,但聽起來好像你的設置是否錯誤。而不是使用其中的TabBar ViewController,使用選項卡欄控制器,看看這是否有幫助:) – Phlibbo

+0

如何創建一個新的標籤欄控制器並將類關聯到它? – Satyam

回答

4

這是一個常見的問題,tabBarController和其他控制器默認狀態欄在其框架座標來解決這個問題,只是將視圖的邊界設置爲tabBarController視圖的框架。

tabBarController.view.frame = self.view.bounds; 
+0

謝謝我不知道這個........ – Satyam

0

在一個案例中self.view.bounds沒有準確的位置。所以以下對我有幫助。

self.view.frame = [[UIScreen mainScreen] bounds]; 
CGRect cgp = self.view.bounds; 
[self.tabBarController.view setFrame:cgp]; 

在另一種情況下(iOS的7)的TabBar隱藏本身到屏幕的底部。在這種情況下

self.view.frame = [[UIScreen mainScreen] bounds]; 
CGRect cgp = self.view.bounds; 
if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_6_1) { 
    cgp.size.height = cgp.size.height-90; 
} 
[self.tabBarController.view setFrame:cgp]; 
相關問題