0

我有一個UITabBarController帶有4個選項卡,前兩個是「Program」和「Workout」。在UITabBarController上更改selectedIndex而不更改當前視圖

雖然在第一個標籤的視圖中,用戶可以選擇他們想要執行的程序,然後點擊「Perform Workout」,這將使他們進入鍛鍊屏幕。

我的目標是將鍛鍊屏幕顯示爲與程序選擇相同的導航控制器的一部分,但是我想更新UITabBarController以反映我們現在處於鍛鍊屏幕上的事實。

的問題是,如果我叫

UITabBarController *tabController = (UITabBarController*)self.navigationController.parentViewController; 
[tabController setSelectedIndex:1]; 

這將打開一個新的UINavigationControllerWorkoutViewController,而不是使用舊的。我意識到這兩個UINavigationController問題正在發生,因爲我的storyboard,但如果我沒有兩個單獨的UINavigationControllers,TabView不會始終保持在最前(第一次推後消失)。

My storyboard

我怎樣才能更新selectedIndexUITabBarController不強迫它加載新UINavigationController

+0

如果你有兩個導航控制器是什麼問題 – Retro

+0

當我調用[tabController setSelectedIndex:1]時,「鍛鍊」屏幕在其自己的導航控制器內打開(即沒有後退按鈕返回到程序選擇屏幕)。 – theDuncs

回答

0

我想你應該斷開你的鍛鍊控制器以及使用storybord ID不能從程序控制器按這個控制器,但更改選項卡的選定索引該控制器推到第二導航cotroller

+0

聽起來不錯。我理解用performSegue將鍛鍊添加到第一個導航控制器,但是如何更改選定的標籤索引而不將其推送到第二個導航控制器(就像目前正在發生的那樣?) – theDuncs

+0

我已經更新了我的答案,但您需要委託進行交換數據介於兩者之間,在我看來,使用Storybord這種情況並不適合xib。 :) – Retro

相關問題