У меня есть вкладка бар класс (который прилагается к моему контроллеру бар вкладки), например, так:Как передавать данные между двумя ViewControllers с TabBarController в Swift
class CaptionTabBarController: UITabBarController, UITabBarControllerDelegate {
func tabBarController(tabBarController: UITabBarController, didSelectViewController viewController: UIViewController) {
var logView = self.viewControllers![2] as CaptionsController
logView.log.append("test working!")
}
override func awakeFromNib() {
self.delegate = self;
}
}
И мой приемный ViewController, как это:
class CaptionsController: UIViewController {
@IBOutlet weak var captionSearchBar: UISearchBar!
@IBOutlet weak var captionsTitle: UILabel!
var receiveImage:UIImage!
var receiveCategoryText:String!
var log = [String]()
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
println(log)
}
}
Это работает, когда я явно устанавливая logView.log
в CaptionTabBarController
.
Результат, который я получаю в своих выходных окнах, как и ожидалось. Каждый элемент вкладки, который я нажимаю, добавляет «test working!». к массиву.
Мой вопрос:
Как я мог бы получить значение из другого класса ViewController к CaptionsController
с помощью tabBarController
метода я использующую?
Это представление является частью «дочернего» самой панели, поэтому я предполагаю, что у нее уже есть экземпляр. Все примеры, которые я нашел, просто показывают это, но не как получить данные из другого класса.
Честно. Я пытаюсь примириться с некоторыми фундаментальными понятиями в быстром, так как я только начал развиваться в такой среде (без объективного опыта). Я не совсем уверен, как использовать класс «AppDelegate» и как его вытащить в «UITabBarController». – zillaofthegods
@ fred02138 подробности? – nsij22