2014-01-21 24 views
2

我在更改我的應用程序以使用UITabBarController而不是UINavigationViewController。我相應地替換了控制器,並且應用程序成功啓動。後來在代碼中,我遇到了一些困難,使用塞格斯其中行喜歡將UINavigationViewController切換爲帶有分段的UITabBarController

[self performSegueWithIdentifier:@"ImageViewController" sender:self]; 

將無法​​正常工作產生錯誤

「當源控制器由UINavigationController的一個實例管理只能用於推塞格斯

當我嵌入UINavigationController到初始FirstViewController,上面的行工作正常。我需要該行來切換視圖並將一些數據傳遞給另一個視圖控制器。

問題在於,使用SEGUE標識符去SecondViewController隱藏的TabBar導航(除非再次我在包裹UINavigationControllerSecondViewController等)。這不是解決方案。

問題:如何使用UITabBarController並仍然利用segues,同時保持選項卡導航可見?

enter image description here

回答

2

「推當源控制器由UINavigationController的一個實例管理塞格斯只能用」

像你使用的是push賽格瑞某處導航外界的聲音對我控制器。儘量選擇在Interface Builder中所有的 「賽格瑞泡沫」 是導航控制器內:

Segue Bubble

,並檢查SEGUE的風格在右窗格中:

Segue Settings

如果將樣式設置爲值push,如上所示將其更改爲modalcustom

Change style to Modal

+0

你說得對。這實際上解決了我在UITabBarController上使用segues的問題。 – Vad

1

也有一些是不對您的連接。如果您使用的是界面構建器(storyboard),那麼您的連接應該看起來像這樣。見圖片

請注意您的地址不詳。此外,每個視圖控制器上的灰色區域意味着空間爲UITabBarController的圖像保留

另一個問題是您的UIToolBar。看起來就像坐在UITabBar的頂部。由於您已經擁有UINavigationController和UITabBarController,因此可能/不會讓您的應用被蘋果拒絕。如果你需要更多的按鈕/選項,使它們成爲UIButtons。

enter image description here

相關問題