Ich möchte, dass eine bedingte if-Anweisung sofort ausgeführt wird, wenn die App geöffnet ist. Grundsätzlich wird esAnzeige eines bestimmten Viewcontrollers in Xcode/swift unter Verwendung von if else bedingten Anweisungen
if x = true {
//segue to viewcontroller1
} else {
//stay on this page
}
Die in Xcode wird und codiert in schnellen (offensichtlich die Syntax ist falsch) ... Was ist der richtige Weg um die Syntax segue zu einem bestimmten View-Controller, wenn die Bedingung zu schreiben ist wahr und bleibe auf demjenigen, der normalerweise beim Öffnen der App geöffnet wird? Wo soll ich das auch hinstellen? Ich habe die viewdidload-Methode im normalerweise zuerst angezeigten Viewcontroller betrachtet, aber die Variable muss überprüft werden, bevor die Ansicht geladen wird, so dass die Ansicht zu einer anderen Ansicht wechselt, wenn die Bedingung wahr ist und stattdessen die erste öffnet?
Edit: Ich habe versucht, den Code in den AppDelegate.swift
wie folgt festzulegen:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
if x{
let mainStoryBoard = UIStoryboard(name: "Main", bundle: nil)
let ViewController = mainStoryBoard.instantiateViewController(withIdentifier: "ViewController") as! ViewController
let appDelegate = UIApplication.shared.delegate as! AppDelegate
appDelegate.window?.rootViewController = ViewController
} else{
//same code as above but to different VC
}
return true
}
Aber wenn ich diese laufen bekomme ich einen Fehler in der AppDelegate sagen, dass „libC++ abi.dylib: mit abgefangene Abschluss Ausnahme vom Typ NSException ". Was ist der richtige Weg, um diesen Code zu ändern?
Ich habe bearbeitet auf diese Frage (obwohl ich es schon vor langer Zeit gefragt). Ich würde gerne Ihren ersten Ansatz verwenden, aber ich habe versucht und habe den Fehler, den ich oben veröffentlicht habe. Kannst du bitte einen Blick darauf werfen, wie ich den Code ändern soll? –
Einige Änderungen vorgenommen, hoffe es hilft – Idan