2015-03-20 2 views
0

У меня есть две вкладки, так у меня есть два контроллера просмотра, мне нужно обновить вторую вкладку с первого просмотра controller.Example:View контроллеры с быстрым

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

Я думаю, мне нужно вызвать метод контроллера второго вида с первого контроллера.

Что лучше всего сделать с быстрым?

ответ

0

Вам нужно объявить свойство в одном контроллере представления, чтобы узнать его о другом. В ссылающихся одном заявляет

@IBOutlet weak var otherController:OtherViewController! 

В вашем AppDelegate, когда все виды инстанцируются место ссылки, как это:

@IBOutlet weak var referencingController: AController! 
// ... 
referencingController.otherController = otherController 

Теперь у вас есть ссылка, и вы можете использовать его в классе ссылающегося как

otherController.doSomething() 

Обратите внимание на ! в вышеуказанной декларации var. Это автоматически разворачивает otherController при использовании.

+0

Спасибо, я буду использовать этот подход или центр уведомлений. Что вы предлагаете? – Okan

+0

Вышеуказанное является прямым способом. Я бы предпочел. –

+0

Можете ли вы объяснить больше раздела делегата приложения? Потому что я не совсем понял, что мне следует добавить в делегат приложения. – Okan

0

Есть два способа добиться этого.

  1. Объявите делегат в первом - добавить метод и реализовать его во втором (Если вы уверены, что только один VC (второй) должен быть обновлен на клик)

  2. Используйте уведомление центр, чтобы опубликовать уведомление и наблюдать, что из других ВК. (Если вы думаете, что может быть много VC, которые необходимо обновить в будущем).

Счастливое кодирование.

Смежные вопросы