【问题标题】:If no internet connection go to rootviewcontroller in swift如果没有互联网连接,请快速转到 rootviewcontroller
【发布时间】:2016-03-16 12:01:42
【问题描述】:

在调用任何服务方法之前,我正在检查是否有互联网连接。如果没有互联网,我会显示一个警报,如果我点击确定按钮,我想转到根视图控制器。

这是我的代码:

if TLReachability.isConnectedToNetwork() == true{
    // do here 
} 
else {
    let navigationController = UIApplication.sharedApplication().keyWindow?.rootViewController as! UINavigationController
    let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
    let changeViewController = mainStoryboard.instantiateViewControllerWithIdentifier("TLLoginViewController") as! TLLoginViewController
    navigationController.presentViewController(changeViewController, animated: true, completion: nil)
}

【问题讨论】:

  • 你的问题到底是什么,你遇到崩溃了吗?您的代码示例的结果是什么?
  • 如果没有网络连接,我想去根视图控制器
  • 它不会进入根视图控制器,代码在 NSobject 类中
  • 我试过了也没有用

标签: swift rootviewcontroller


【解决方案1】:
let alert:UIAlertController = UIAlertController.init(title: "ALERT", message: "NO INTERNET", preferredStyle: UIAlertControllerStyle.Alert)
alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.Cancel, handler: { action -> Void in
    let rootViewController = mainStoryboard.instantiateViewControllerWithIdentifier("RootViewController") as! RootViewController
    navigationController.presentViewController(changeViewController, animated: true, completion: nil)
}))
self.presentViewController(alert, animated: true, completion: nil)

【讨论】:

    【解决方案2】:

    尝试在主线程上调用您的代码:

    dispatch_async(dispatch_get_main_queue(), {
      let navigationController = UIApplication.sharedApplication().keyWindow?.rootViewController as! UINavigationController 
      navigationController.popToRootViewControllerAnimated(true)
    })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-13
      • 1970-01-01
      • 1970-01-01
      • 2021-11-14
      • 2014-10-10
      相关资源
      最近更新 更多