2016-10-25 10 views
0

私は2つのタブ(2つのVC)で構成されるアプリ内のメインTabBarVCを持っています。タブバー:タブ間のやりとり

タブの1つはマップVC(show google map)です。 どのようにVCを接続する必要がありますか。

私は、最初のタブから2番目のマップ(マップvc)に座標を送信する必要があります。

私の最初のアイデアは、MapVCクラスの変数を作成し、それを提示することです。 しかし、私はTabBarVCを持っていると私はちょうどselectionIndexを変更する必要があります?

self.tabBarController?.selectedIndex = 2 

か)

それは動作しますが、私はMapVCクラスの静的VAR(緯度、経度)を作成し、変更前のselectedIndexが、この静的変数を設定しました。タブを変更した後、mapVCのviewDidLoad関数を呼び出すと、マップ上に位置を表示できます。はい。

問題:TabをFirstに変更してボタン(第2タブの位置を表示)を押すと、MapVCのviewDidLoadは既に作成されているため実行されません。 MapVC(2番目のタブ)の機能を呼び出すことはできません。作成しないため、タブを作成するだけです。

代表者、プロトコル...私を助けることができるのは何ですか?

ありがとうございます! FirstVCのshowアクションで

答えて

1

、MapVCます:

if let mapVC = self.tabBarController.viewControllers[1] as? YourViewController { 
    // you can use public properties of MapVC here 
} 
+0

は、そんなに友人をありがとう! –

関連する問題