Ich verwende eine if-Anweisung, um ein Segment auszuführen. Ich habe die if-Anweisung drucken eine Nachricht, wenn es erfolgreich ausgeführt wird. Der Übergang läuft jedoch nicht und ich bin mir nicht sicher warum.Segue läuft nicht
override func viewDidLoad() {
super.viewDidLoad()
firstField.delegate = self
signUpButtonOutlet.isEnabled = false
// Do any additional setup after loading the view.
let fetchRequest: NSFetchRequest<Check> = Check.fetchRequest()
do {
//go get the results
let searchResults = try getContext().fetch(fetchRequest)
//I like to check the size of the returned results!
print ("num of results = \(searchResults.count)")
//You need to convert to NSManagedObject to use 'for' loops
for check in searchResults as [NSManagedObject] {
//get the Key Value pairs (although there may be a better way to do that...
print("the value was\(check.value(forKey: "isLoggedIn"))")
if (check.value(forKey: "isLoggedIn") != nil) {
self.performSegue(withIdentifier: "loggedInTrue", sender: self)
print("if statement ran")
}
}
} catch {
print("Error with request: \(error)")
}
}
Hat gesetzt haben Sie versucht, Ihre performSegue Code 'viewDidAppear()' zu bewegen ?? –
genau wie @MrugeshTank sagte setzen Sie Ihr Segment in der viewdidappear, Sie können nicht auf Viewdidload segue – rudydydy
Dies ist nicht der beste Weg, dies zu tun, sollten Sie wirklich den eingeloggten Status in Benutzerstandards speichern, wo Sie diese Variable überprüfen können Ihr App-Delegat beim Laden. Dann zeigen Sie den richtigen Controller – Devster101