2016-11-23 1 views
0

Ich versuche, eine segue bei erfolgreicher Anmeldung in swift 3 durchzuführen. Sobald mein Web-Service Erfolgsmeldung zurückschickt, möchte ich den Übergang durchführen. Ich versuche das gleiche auf folgende Weise:Führen Sie nach Abschluss des Web-Service-Aufrufs Swift3

DispatchQueue.main.sync(execute: { 
     print("Login successful") 
     self.performSegue(withIdentifier: "goToTimerPage", sender: self) 
}) 

Mein Protokoll druckt gut. Bitte helfen Sie mir dabei. Ich bin neu in Web Services.

+1

Ist "Login erfolgreich" gedruckt, in Consol e? – iDeveloper

+0

Was passiert, wenn dieser Code ausgeführt wird? Warum verwenden Sie Sync statt Async? – Paulw11

+0

Ja Login erfolgreich ist Drucken in der Konsole – Mamta

Antwort

0

Verwendung wie diese

DispatchQueue.main.sync(execute: { 
     print("Login successful") 
     self.performSegue(withIdentifier: "goToTimerPage", sender: self) 
}) 

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
if segue.identifier == "goToTimerPage" { 
//present your view controller or do some code 
} 
0

Einfacher Weg für die Navigation.

Richten Sie Ihre didFinishLaunchingWithOptions wie folgt ein.

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 


    let storyboard :UIStoryboard 

    if UIDevice.currentDevice().userInterfaceIdiom == .Pad{ 

     storyboard = UIStoryboard(name: "Main_iPad", bundle: nil) 
    } 
    else{ 
     storyboard = UIStoryboard(name: "Main", bundle: nil) 
    } 


    let navigationController:UINavigationController = storyboard.instantiateInitialViewController() as! UINavigationController 

    let objLoginViewController:UIViewController = storyboard.instantiateViewControllerWithIdentifier("ID_LoginViewController") as! LoginViewController 

    navigationController.viewControllers = [objLoginViewController] 


    if self.window != nil { 
     self.window!.rootViewController = navigationController 
    } 



    return true 
} 

Diese Funktion aufrufen, sobald die Antwort erfolgreich ist.

self.redirectToNewViewcontroller() 

-Code für redirectToNewViewcontroller Funktion

func redirectToNewViewcontroller() 
{ 
    let objNewViewController = self.storyboard?.instantiateViewControllerWithIdentifier("ID_NewViewController") as? NewViewController 

    self.navigationController?.pushViewController(objNewViewController!, animated: true) 
} 
0

einfach sicherstellen, dass Sie die Ansicht-Controller in einer Navigationssteuerung den Quelle-View-Controller nicht die Ziel-View-Controller einbinden

Verwandte Themen