2016-11-23 23 views
0

我想在swift 3中成功登录时执行segue。一旦我的web服务返回成功消息,我想执行segue。我试图通过以下方式:在完成Web服务调用后执行segue Swift3

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

我的日志打印正常。 请帮我这个。我对web服务很陌生。

+1

“登录成功”正在打印,在CONSOL e? – iDeveloper

+0

这段代码运行时会发生什么?为什么你使用同步而不是异步? – Paulw11

+0

是登录成功正在控制台打印 – Mamta

回答

0

使用这样

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

简单的导航方式。

像这样设置你的didFinishLaunchingWithOptions

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 
} 

一旦获得成功响应,调用该函数。

self.redirectToNewViewcontroller() 

为redirectToNewViewcontroller功能代码

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

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

只需确保您嵌入您的视图控制器导航控制器 源视图控制器而不是终点视图控制器

相关问题