2014-01-09 26 views
0

我已經使用Xcode 5中的故事板幾乎完善了我的第一個iOS應用作爲單個視圖。現在,我想包含帶有三個副本的選項卡欄那相同查看。即將以完全相同的方式顯示三個不同的數據集,可從選項卡中進行選擇。將故事單視圖應用轉換爲具有多個相同視圖的選項卡式視圖

我很努力的做這種轉換的方法。據我瞭解,我的模型和控制器代碼可以保持一致(除了獲取每個數據的獨特數據外),但是我失去了修改故事板還是以編程方式進行編輯。

故事板方法似乎是錯誤的,因爲每個視圖都需要自己的定義,當它們應該共享相同的定義時。代碼方法更有意義,但我正在努力找到所有的部分,使其工作。我已經做了幾次,並且在模擬器中啓動時無法使標籤視圖顯示甚至顯示。

我知道我現有的視圖需要縮小以適應,但我有自動佈局工作,所以應該照顧自己。

爲了澄清,我從「單視圖」模板構建了應用程序,並使用當前的故事板來啓動和連接所有內容。

+1

我不知道你的問題是什麼。在故事板中,您可以多次複製和粘貼一個視圖控制器,並將它們連接到一個標籤欄控制器。這將爲您提供單個控制器類的多個實例。這是你想要做的嗎? – rdelmar

+0

我沒有意識到故事板中有簡單的重複。如果我在故事板中複製我的視圖控制器,這是否意味着如果我想在將來改變視圖的結構(我會這樣做),那麼我必須在三個地方做到這一點? – zkarj

+0

其實,我想我在這裏找到了另一個問題的答案:http://stackoverflow.com/questions/14982721/how-to-connect-two-different-tab-bar-icons-to-same-view-controller- with-storyboa 感謝您的評論,因爲它幫助我重述了我的問題以找到答案。 – zkarj

回答

0

根據我上面留下的評論,這裏是我的解決方案。

  1. 通過拖動將現有視圖控制器附加到標籤欄控制器。
  2. 從選項卡控制器中刪除任何默認添加的視圖,只留下我的。
  3. 將選項卡控制器標記爲初始視圖。 (並取消標記我的原始文件)。
  4. 更改我的原始視圖控制器,以應付標籤欄佔用的空間(在我的情況下,我不想在它下面有任何東西,因此我未勾選「底部條形圖」。)
  5. 在我的代碼,扔掉現有的單連視圖,而是建立三個

裏面的應用程序委託的didFinishLaunchingWithOptions方法...

// Add extra tabs 
UIViewController *vc1, *vc2, *vc3; 
vc1 = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"CBViewController"]; 
[vc1 setTabBarItem:[[UITabBarItem alloc] initWithTitle:@"Tab A" image:[UIImage imageNamed:@"tabA_unselected"] selectedImage:[UIImage imageNamed:@"tabA_selected"]]]; 
vc2 = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"CBViewController"]; 
[vc2 setTabBarItem:[[UITabBarItem alloc] initWithTitle:@"Tab B" image:[UIImage imageNamed:@"tabB_unselected"] selectedImage:[UIImage imageNamed:@"tabB_selected"]]]; 
vc3 = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"CBViewController"]; 
[vc3 setTabBarItem:[[UITabBarItem alloc] initWithTitle:@"Tab C" image:[UIImage imageNamed:@"tabC_unselected"] selectedImage:[UIImage imageNamed:@"tabC_selected"]]]; 
_tabController = (UITabBarController *)self.window.rootViewController; 
[_tabController setViewControllers:[NSArray arrayWithObjects:vc1, vc2, vc3, nil] animated:YES]; 
相關問題