У меня есть три контроллера просмотра (VC1, контроллер родительского контроля и контроллер детского просмотра). Как передать данные из VC1 в контроллер дочернего представления при загрузке ParentVC? Обычно я мог бы использовать это в первый View ControllerПередача данных с контроллера View на дочерний контроллер в Swift
var text = "Hello"
var sVC = SecondViewController()
sVC.string = text
и будет проходить Hello
переменной string
во втором контроллере представления. а затем сделать то же самое, чтобы передать данные с второго контроллера просмотра на третий. Но, к сожалению, эта логика не работает. Я попытался передать данные из VC1 в ParentVC, а затем в ChildVC. Я также попытался передать данные из VC1 непосредственно в ChildVC, но это тоже не работает.
Вот что у меня есть
import UIKit
class ViewController1: UIViewController {
var a = "Test"
override func viewDidLoad() {
var pVC = ParentViewController()
pVC.a = a
}
}
я могу передать данные Родитель View Controller и печатает Test
, но это не для ребенка View Controller
import UIKit
class ParentViewController: UIViewController {
var pageMenu: CAPSPageMenu?
var a = ""
func test() {
var cvC = ChildViewController(frame: self.view.frame)
cvC.a = a
}
override func viewDidLoad() {
println(a)
}
override func viewWillAppear(animated: Bool) {
}
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
// MARK: - Scroll menu setup
// Initialize view controllers to display and place in array
var controllerArray : [UIViewController] = []
var controller1 : ChildViewController = ChildViewController(nibName: nil, bundle: nil)
controller1.title = "View Controller"
controllerArray.append(controller1)
// Initialize scroll menu
pageMenu = CAPSPageMenu(viewControllers: controllerArray, frame: CGRectMake(0.0, 65, self.view.frame.width, self.view.frame.height), pageMenuOptions: parameters)
self.view.addSubview(pageMenu!.view)
}
}
И Контроллер детского просмотра У меня есть:
import UIKit
class ChildViewController: UIViewController {
var a = ""
convenience init(frame:CGRect){
self.init(nibName: nil, bundle: nil)
self.view.frame = frame
}
override func viewDidLoad() {
var pVC = ParentViewController()
pVC.test()
println(a)
}
Что такое 'cvC' в вашем коде? – Leo
Предполагается, что это переменная. Я отредактирую его. –
Вы каждый раз создаете новые контроллеры.'ChildViewController' создает новый' ParentViewController', когда загруженное представление и 'ParentViewController' снова создает новый' ChildViewController' в 'test' и' viewDidAppear', но вы передаете свойство 'a' только в методе' test' , что ничего не делает с дочерним контроллером. – redent84