Если вы используете NavigationController
, вы можете получить доступ к каждому контроллеру, подключенному к нему, напрямую через него, обратившись к нему viewControllers[index]
.
Например, вы можете использовать пользовательский NavigationController
, переопределяя класс по умолчанию и сохраняя в нем данные каждого шага, которые доступны для всех контроллеров представления, вставленных в него, а в C вы можете получить их следующим образом:
let navVC = self.navigationController as? YourCustomNavigationController
let data = navVC.getData()
или просто временно сохраните данные в AppDelegate
, и они будут доступны в любом месте вашего приложения, что не рекомендуется, поскольку это делает ваш код грязным
Если это не помогло, пожалуйста, дайте мнебольше информации о структуре вашего приложения и о том, что вы пытаетесь сделать:)
Создайте новый класс касания какао и назовите его следующим образом: CustomNavigationController
и сделайте его подклассом из UINavigationController
и, если вы используете раскадровку, задайте класс контроллера навигации, который A вставляется в него в CustomNavigationController
(на вкладке инспектора идентификации) в Интерфейсном конструкторе
Затем вы можете добавить свойсвойства и методы для CustomNavigationController
, такие как:
var data : AnyObject?
func storeData(data:AnyObject){
}
func getData() -> AnyObject? {
return data
}
И из любого контроллера представления этого передать значение в контроллер навигации:
let navVC = self.navigationController as! CustomNavigationController
navVC.storeData(data: myData)
}