Ich habe die härteste Zeit, eine Antwort dafür zu finden.Wie zu Storyboard ViewController aus XIB-Ansicht mit swift 3
Ich habe eine Xib-Ansicht, die in einem Bildlauf befindet, die in einem Ansichtscontroller ist. In der Xib habe ich eine Schaltfläche mit einer Aktion und ich muss zu einem View-Controller, den ich in meinem Storyboard habe, wechseln. Ich möchte auch in der Lage sein, einen benutzerdefinierten Übergang zu verwenden.
Bisher habe ich gelesen, dass ich den Viewcontroller aus dem Storyboard instanziieren kann, um es zu überführen. Aber dann weiß ich nicht, wie ich diesen Controller präsentieren soll.
Dank für jede Hilfe ...
UPDATE:
dies ist der Code, den ich den Übergang auszuführen bin mit.
In Mutterviewcontroller:
static var referenceVC: UIViewController?
override func viewDidLoad() {
super.viewDidLoad()
print("viewdidload")
LevelSelectViewController.referenceVC = self
setupScrollView()
}
Code in xib Ansicht Datei
let vc = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "sightWordController")
let parent = LevelSelectViewController.referenceVC!
let segue = InFromRightCustomSegue(identifier: "test", source: parent, destination: vc)
segue.perform()
Segues sind normalerweise nur auf Storyboard-Verwendung beschränkt. Wahrscheinlich müssen Sie Ihre Ansicht (die Sie die gesamte Klasse der Ansicht konfigurieren können, die von einer Spitze geladen werden soll) in das Storyboard einfügen und dann können Sie ein Segment anhängen. Andernfalls werden sie aus einem bestimmten Grund 'UIStoryboardSegue' genannt. – TheCodingArt
Wenn Sie ein benutzerdefiniertes Segment verwenden, das im Code zugewiesen werden kann, brauchen Sie nur eine VC, um das auszuführen, was bedeutet, dass Sie die Responder-Kette hochklettern können, um die zugehörige VC zu finden. Im Allgemeinen klingt es jedoch nach einem benutzerdefinierten Übergang und einer Art Delegatenrückruf. Es gibt absolut keinen Grund, um Ihren Code so kompliziert zu machen, um einen Übergang zu halten. – TheCodingArt
Ich habe es gerade zur Arbeit gebracht. Mein größtes Problem war, einen Verweis auf den übergeordneten Viewcontroller zu bekommen, damit ich das Segment aufrufen kann. Die Art und Weise, wie ich die Referenz bekommen habe, ist ein bisschen wie ein Hack. Ich habe eine statische Referenzvariable im übergeordneten View-Controller erstellt, die ich in der xib-Datei verwenden kann. Gibt es einen besseren Weg, die Referenz zu bekommen? Ich werde die Frage aktualisieren, um meinen Code anzuzeigen. – Discoveringmypath