Sto ricostruendo un'app senza storyboard e la parte di esso con cui ho più problemi è la navigazione in modalità view-to-view. Poche cose sono scritte là fuori che non usano gli storyboard, quindi trovare una risposta per questo è stato difficile.Swift - Creazione di un'istanza di un controller di navigazione senza storyboard nel Delegato app
Il mio problema è piuttosto semplice. Ho il mio ViewController
e il mio SecondViewController
e voglio spingere dal primo al secondo.
In AppDelegate
:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
window = UIWindow(frame: UIScreen.mainScreen().bounds)
window?.backgroundColor = UIColor.whiteColor()
window?.rootViewController = ViewController()
window?.makeKeyAndVisible()
return true
}
Poi nel ViewController.swift
:
class ViewController: UIViewController, AVAudioPlayerDelegate, UITextFieldDelegate {
override func viewDidLoad() {
super.viewDidLoad()
startFinishButton.setTitle("Begin", forState: .Normal)
startFinishButton.addTarget(self, action: "moveToSecondViewController", forControlEvents: .TouchUpInside)
view.addSubview <*> startFinishButton
}
func moveToSecondViewController(sender: UIButton) {
let vc = SecondViewController()
println(self.navigationController) // returns nil
self.navigationController?.pushViewController(vc, animated: true)
}
}
stampa self.navigationController
rendimenti zero. Ho provato a fare:
var navController = UINavigationController()
quando viene creata la classe ViewController
(ma al di fuori di viewDidLoad, proprio sotto la dichiarazione della classe) e fatto la spinta utilizzando il navController
var, ma che non ha funzionato.
Sto pensando che forse la soluzione è creare un controller di navigazione nel Delegato app che l'intera app userebbe, credo come variabile globale?
La mia speranza è che questo post possa servire molti altri che sono nuovi a Swift e vogliono rimuovere gli storyboard dalla loro app.
Grazie per dare un'occhiata e per il vostro aiuto.
Qual è il tuo dispositivo di navigazione personalizzato? – user7097242