Ich habe drei View Controller (VC1, Parent View Controller und Child View Controller). Wie übermittle ich Daten vom VC1 an den untergeordneten View-Controller, wenn das ParentVC geladen ist? Normalerweise würde ich in der Lage sein, dies in dem ersten View-Controller würdeÜbergeben von Daten vom View Controller zum Child Controller in Swift
var text = "Hello"
var sVC = SecondViewController()
sVC.string = text
und es Hello
auf die Variable string
in den zweiten View-Controller passieren zu verwenden. und dann dasselbe tun, um Daten vom zweiten View-Controller an den dritten zu übergeben. Aber leider funktioniert diese Logik nicht. Ich habe versucht, die Daten von VC1 an die ParentVC dann an die ChildVC übergeben. Ich habe auch versucht, die Daten von VC1 direkt an den ChildVC zu übergeben, aber das scheint auch nicht zu funktionieren. Hier
ist, was ich habe
import UIKit
class ViewController1: UIViewController {
var a = "Test"
override func viewDidLoad() {
var pVC = ParentViewController()
pVC.a = a
}
}
Ich bin in der Lage Daten an die Eltern-View-Controller zu übergeben und er druckt Test
aber es funktioniert nicht für das Kind-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)
}
}
Und in der Kind View Controller Ich habe:
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)
}
Was ist 'cvC' in Ihrem Code? – Leo
Es soll eine Variable sein. Ich werde es bearbeiten. –
Sie erstellen jedes Mal neue Controller.'ChildViewController' erstellt einen neuen' ParentViewController' wenn die Ansicht geladen wird und 'ParentViewController' erstellt erneut' ChildViewController' in 'test' Methode und' viewDidAppear' erneut, aber Sie übergeben nur die 'a' Eigenschaft in der' test' Methode , das tut nichts mit dem Kindercontroller. – redent84