2017-07-18 121 views
1

大家好我想從第一個tabbarcontroller繼續到第二個tabbarcontroller,但無法這樣做。在我的TabBar視圖控制器還嵌有NavigationControllers,所以當我嘗試切換標籤它給了我錯誤saying-:單擊時將標籤欄從一個標籤欄移動到另一個標籤欄(帶有導航控制器的標籤欄)

無法投類型的值「的UINavigationController」(0x1048d5898)到 「abc.CategoriesController '(0x101088d88)。

代碼我used-:

let barViewControllers = self.tabBarController?.viewController 
let svc = barViewControllers![1] as! myController 
svc.myOrder = self.myOrder 

我嘗試了許多解決方案,但未能Segue公司任何人都可以幫我嗎?如果有人能解釋這個問題,請給我解釋一下嗎

self.tabBarController.selectedIndex = 1確實有效,但我無法通過此方法傳遞數據。

由於馬迪所述 - :

使用let barViewControllers = self.tabBarController?.viewController[1] as? myController來傳遞數據。

但是,這是給我上面崩潰行

+0

錯誤對tabbatcontroller的[1]位置建議你得到的是UINavigationController你需要找到該導航控制器的所有堆棧 –

+0

不要將您的[1]投給myController將其轉換爲UINavigationController,以及在svc.viewControllers爲您提供的所有堆棧viewController的navigationcontroller –

回答

3

你得到了錯誤建議你從下面的代碼得到的是不是的viewController如果你

let barViewControllers = self.tabBarController?.viewController //some what wrong with this 

訪問所有觀點最好的方法控制器是如下

var svc = self.tabBarController.viewControllers 

,如果你想通過他們的指數,然後訪問以下viewControllers一個

var svc = self.tabBarController.viewControllers[1] as yourVC 

和最後但不是在列表中,如果你想從使用TabBar訪問導航控制器

var svc = self.tabBarController.viewControllers[1] as UINavigationController 

希望這有助於你:)

+0

不會導致崩潰但不甚至switchi ng標籤,而且最後這一步我將如何發送數據到特定的控制器。 –

+0

你可以使用var svc = self.tabBarController.viewControllers [1]作爲你的VC傳遞數據,並切換選項卡,你可以用self.tabBarController.selectedIndex去,並確保你所有追逐你的viewWillappear你的目標標籤 –

+0

已更新回答。 –