2017-04-30 3 views
0

Ich versuche, Storyboards bei einer Schaltfläche nur zu wechseln, wenn eine Bedingung (das Textfeld ist nicht leer) erfüllt ist. Ich habe dieses Stück Code als Antwort auf eine ähnliche Frage gefunden, und es scheint nicht zu funktionieren. Mein Programm stürzt ab mit '' Storyboard() enthält keinen View Controller mit Bezeichner 'Avatar Controller' '"Kann Storyboards nicht programmgesteuert wechseln

Ich bin mir nicht ganz sicher, wo der View Controller zu finden ist, oder ob ich ihn habe oder nicht um '.storyboard' am Ende des Storyboard-Namens hinzuzufügen.

let storyboard = UIStoryboard(name: "Avatar", bundle: nil) 
let vc = storyboard.instantiateViewController(withIdentifier: "Avatar Controller") 
     self.navigationController!.pushViewController(vc, animated: true) 

Antwort

0

Dies könnte aus zwei Gründen geschehen.

1) Da in Ihrem Avatar.storyboard Sie verweisen einen View-Controller mit der ID Avatar Controller aber Sie haben nicht diesen Wert auf einen der Ansicht-Controller in der Storyboard-Datei festgelegt. Gehen Sie in Ihrem Avatar.storyboard, klicken Sie auf den View-Controller Sie zeigen möchten, und gehen Sie zu diesem Panel:

enter image description here

Vergewissern Sie sich, dass die Storyboard ID für Ihre viewController Streichhölzer, welchen Wert Sie in storyboard.instantiateViewController(withIdentifier: "Avatar Controller") verwenden

2) Weil Sie kein bundle bereitstellen, wenn Sie Ihr Storyboard laden. Sie rufen diese

let storyboard = UIStoryboard(name: "Avatar", bundle: nil); 

sondern weil Sie bundle als nil angeben es nicht weiß, wo für die Avatar.storyboard Datei zu suchen. Um es zu beheben, geben Sie bundle als Bundle.main:

let storyboard = UIStoryboard(name: "Avatar", bundle: Bundle.main); 
+0

Ich habe gerade überprüft das und es wird als ‚Avatar Controller‘, aber ich bekomme den gleichen Fehler. Ich habe es erneut eingegeben und es erneut ausgeführt, um sicher zu sein, und es half nichts –

+0

behoben. Sie haben kein Paket angegeben, also wusste es nicht, wo Sie nach Ihrer Storyboard-Datei suchen sollten. –

+0

Das schien diesen Fehler behoben zu haben, aber jetzt bekomme ich *** App beenden aufgrund der nicht abgefangenen Ausnahme 'NSInvalidArgumentException', Grund: '- [FInal_Project.User_Info NameInputEditingDidEnd:]: unerkannter Selektor gesendet an Instanz 0x7fababd1b090 ' –

0

Damit es funktioniert, hat Use Storyboard ID zu überprüfen

enter image description here

+0

Ich habe das überprüft und es ausgeführt und ich bekomme immer noch den gleichen Fehler –

Verwandte Themen