2016-10-25 3 views
0

У меня есть основное приложение TabBarVC, которое содержит 2 вкладки (2 VC).Tab Bar: взаимодействие между вкладками

Одна из вкладок - карта VC (показать карту google). Как это должно быть, VC не связаны друг с другом.

Произошло это, мне нужно отправить координаты для показа с первой вкладки на вторую (карта vc).

Моя первая идея - создать переменную класса MapVC и просто представить ее. Но я TabBarVC и я должен просто изменить selectionIndex:

self.tabBarController?.selectedIndex = 2 

или нет)

Он работает, я создал статический вар (широта, долгота) в классе MapVC и до изменения SelectedIndex установить эту статическую переменную , После изменения вкладки вызовите функцию viewDidLoad mapVC, и я могу показать местоположение на карте. Хорошо.

Проблема: если я изменю вкладку «Первая» и нажмите кнопку (показать местоположение на вкладке «Второе»), viewDidLoad из MapVC не будет запущен, поскольку он уже создавался. Я не могу назвать какие-либо функции MapVC (вторая вкладка), потому что я ее не создаю, это просто вкладка, которая сама создает.

Делегаты, протоколы ... Что мне может помочь?

Спасибо!

ответ

1

В шоу действия FirstVC, получить MapVC:

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

Спасибо и так много, друг! –