Вы можете перехватывать фактическое переключение между контроллерами зрения с помощью UITabBarControllerDelegate с помощью метода tabBarController:didSelectViewController::
Сообщает делегат, что пользователь выбрал элемент в панели вкладок.
Существует изящная реализация вы можете сделать, зайдя в библиотеку объектов и поиск «объект»:
Перетащите его в ваш контроллер представления Tab бара и установить его делегат по Ctrl + перетащить.
Выберите его:
и установить пользовательский класс в инспекторе:
При щелчке правой кнопкой мыши на объект, вы должны увидеть:
Вот пример вашей CustomClass:
class CustomClass : NSObject, UITabBarControllerDelegate
{
func tabBarController(tabBarController: UITabBarController, didSelectViewController viewController: UIViewController)
{
}
}
Хотя пары ViewController является:
Контроллер вида, что пользователь выбрал. В iOS v3.0 и более поздних версиях это может быть тот же самый контроллер, который уже был выбран.
Это означает, что вам необходимо проверить, какой именно VC это.
Я сделал это, но tabBarController() не получают казнены. – Felix
Это именно то, что вам нужно, помните, что ваш VC должен быть контроллером просмотра панели вкладок. Если обратный вызов не работает, это означает, что вы не установили делегат так, как должны. Таким образом, обратные вызовы происходят, но НЕ к вашему customClass. Я обновил ответ, как ваш объект должен выглядеть, когда вы нажимаете на него правой кнопкой мыши. – OhadM
спасибо, я нашел решение самостоятельно. 'let ctrl = super.parentViewController как! UITabBarController для saveCtrl в ctrl.viewControllers! { if saveCtrl is SaveViewController { print ("Worked") let newSaveCtrl = saveCtrl as! SaveViewController новыйSaveCtrl.saveDelegate = {(новое_значение: String) в self.Elemente.append (NEWVALUE) }} } ' – Felix