2012-02-27 66 views
3

我試圖將標籤欄控制器連接到我的應用程序的現有部分,但是當我這樣做時出現「故障」。標籤欄控制器沒有正確顯示

然而,當我運行標籤欄控制器部分獨立爲初始視圖控制器,它正常工作像下面的圖片中:

enter image description here

這是當它運行的應用程序的外觀(正確的行爲):

enter image description here

但是當我去這個標籤欄控制器從我的主要的應用程序,這是它的外觀像這樣:

enter image description here

我主要的應用程序是這樣的:

滾動視圖包含

  • 的UIView 1
  • 的UIView 2
  • 的UIView 3
  • 的UIView X

每個視圖都與此標籤欄控制器無關。只有一個視圖視圖x試圖「訪問」標籤欄控制器並在那裏顯示一些數據,但事實並非如此。有任何想法嗎?

我有這樣的標籤欄控制器標識設置進行測試,而我在這裏就是我要做的,從我的觀點X:

UITabBarController *newViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"test"]; 
     [self.view addSubview:newViewController.view]; 

編輯:

整個應用程序:

enter image description here

我以編程方式創建視圖。這就是爲什麼我沒有任何關係/賽格到標籤欄控制器。

SOLUTION:

變化:

UITabBarController *newViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"test"]; 
      [self.view addSubview:newViewController.view]; 

要:

UITabBarController *newViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"test"]; 
     [self addChildViewController:newViewController]; 
     [self.view addSubview:newViewController.view]; 

回答

2

你需要一個根的viewController設置爲導航控制器

+2

我只希望我的許多視圖中的一個指向導航控制器,我仍然想從我的應用程序(根視圖控制器從當前啓動的位置開始)開始。也許我很想解釋你的答案,可以給出更詳細的答案嗎?謝謝 – London 2012-02-27 13:22:17

+0

嘗試在tabbarview控制器 – Janub 2012-02-27 14:00:09

1

只是這樣做。從Apple UITabBarController referenece

由於類的UITabBarController從UIViewController類繼承,標籤欄控制器有自己的觀點,即是通過視圖屬性進行訪問。在部署選項卡欄界面時,必須將此視圖安裝爲窗口的根目錄。與其他視圖控制器不同,選項卡欄界面不應該被安裝爲另一個視圖控制器的子視圖。

據我所知,這意味着你必須只使用UITabBarController作爲窗口的根視圖控制器。但是你可以一直使用普通的UIViewController並在那裏添加UITabBar。

(您遇到的視圖偏移問題可能是固定的,但不會遵循Apple指南,但不建議)。

+1

中將「Addsubview」函數更改爲「Addchildviewcontroller」,這是一個有效的點,你會如何推薦我去做這件事。我希望這個標籤欄控制器可用於我的應用程序中的選項,並且我需要將它們安排在某種標籤中,以便用戶不會被信息覆蓋。你將如何實現這一點,+1爲答案 – London 2012-02-27 14:21:18

+0

我會建議使用UISegmentedControl設置視圖,它應該是與蘋果的指導方針很好,並應完全匹配用戶體驗(作爲一個例子見Wi-Fi網絡詳細信息視圖設置應用程序)。如果你真的想在導航層次結構中使用TabBar,並且它必須與TabBar相關聯,並且沒有其他任何東西,請準備好應用程序被拒絕(我不是說它會,但它可能是)。如果您需要UISegmentedControl或UITabBar的任何教程而不是UITabBarController,您可以嘗試Google獲取詳細信息,其中有很多已經爲您準備就緒。 – 2012-02-28 11:09:21