2017-07-18 11 views
1

こんにちはすべて私は最初のtabbarcontrollerから2番目のtabbarcontrollerまでsegueしたいがそうすることはできない。私のTabBarのビューコントローラもNavigationControllersに埋め込まれた、と私はタブを切り替えるしようとすると、それは私にエラーsaying-与えている:(0x1048d5898)abc.CategoriesController」 にクリック時にタブバーから別のタブバーに移動する(ナビゲーションコントローラー付きのタブバー)

は「UINavigationController」型の値をキャストすることができませんでした'(0x101088d88)。私はused-

コード:

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

私は多くのソリューションを試みたが、誰も私を助けることができるセグエすることができませんでしたか?誰かができれば私の背後にあるコンセプトを説明してください。

self.tabBarController.selectedIndex = 1このメソッドではデータを渡すことはできません。データを渡す

使用let barViewControllers = self.tabBarController?.viewController[1] as? myControllerマディ said-として

しかし、これはクラッシュの上に私を与える行である

+0

エラーはそのtabbatcontrollerの[1]の位置に提案し、このヘルプを

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

希望をナビゲーションコントローラにアクセスしたい場合あなたはそのナビゲーションコントローラのすべてのスタックを見つける必要があります –

+0

あなたの[1]をキャストしないでください私には、UINavigationControllerにキャストし、svc.viewControllersはあなたのすべてのスタックを提供しましたnavcontrollerのviewControllers –

答えて

3

あなたが得たエラーは、あなたが以下のコードから取得するのViewControllerではないことを示唆している場合

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

すべてのビューにアクセスするための最善の方法コントローラは

var svc = self.tabBarController.viewControllers 

以下の通りであり、あなたがそれらの指標によってviewControllersにアクセスしたい場合は、その後1

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

と最後ではなく、リスト中のあなたはタブバーからあなた:)

+0

クラッシュを与えていない偶数スイッチまた、最後の手順で特定のコントローラにデータを送信する方法について説明します。 –

+0

あなたのVVとしてvar svc = self.tabBarController.viewControllers [1]を使用してデータを渡すことができます。また、タブを切り替えるには、self.tabBarController.selectedIndexを使用して、あなたのviewWillappearの送り先タブで追跡することができます。 –

+0

updated回答。 –

関連する問題