ios - 面临可达性 IOS Swift 的问题

标签 ios swift reachability

我在该项目的一个演示项目中创建了可达性我有两个 View Controller 如果有互联网连接我会显示 OnlineViewController 如果没有互联网连接我会显示 OfflineViewController。请参阅我在 Appdelegate.swift 中实现的以下代码。

 var reachability:Reachability?
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

        NotificationCenter.default.addObserver(self, selector: #selector(reachabilityStatusChanged(_:)), name: .reachabilityChanged, object: nil)
        reachability = Reachability.forInternetConnection()
        reachability!.startNotifier()
            return true
    }

我的功能是这样的

 @objc func reachabilityStatusChanged(_ sender: NSNotification) {

        var remoteHostStatus = self.reachability!.currentReachabilityStatus()

        if (remoteHostStatus == NotReachable)
        {
            print ("no net")
            let testController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "OfflineViewController") as! OfflineViewController
            window!.rootViewController = testController
            window!.makeKeyAndVisible()
        }
        else
        {
            let testController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "OnlineViewController") as! OnlineViewController
            window!.rootViewController = testController
            window!.makeKeyAndVisible()
            print (" wifi")

        }

    }

现在我的问题是我想在我有 3 个 Storyboard和多个 View Controller 的那个项目的实时项目中实现同样的事情。那么如果有互联网连接,如何再次显示用户当前屏幕。

最佳答案

我使用以下代码解决了我的问题。我不确定我的回答是对还是错。

@objc func reachabilityStatusChanged(_ sender: NSNotification) {

        var remoteHostStatus = self.reachability!.currentReachabilityStatus()

        if (remoteHostStatus == NotReachable)
        {
            print ("no net")
            let testController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "OfflineViewController") as! OfflineViewController
            window!.rootViewController = testController
            window!.makeKeyAndVisible()
        }
        else
        {
          UserTypeValidateCall()

        }

    }.

//MARK:- Validating User Type
func  UserTypeValidateCall()
{
    let Usertype  =  UserDefaults.standard.string(forKey: "Usertype")
    print("Usertype-----",Usertype)

    if(( Usertype) != nil)
    {
        if (Usertype?.isEqual("Parent"))!
        {
            ParentDashBoardEnter()
        }
        else  if (Usertype?.isEqual("Employee"))!
        {
            TeacherDashBoardEnter()
        }
        else if (Usertype?.isEqual("Admin"))!
        {
            AdminDashBoardEnter()
        }
    }
    else
    {
        LoginScreenEnter()
    }
}

关于ios - 面临可达性 IOS Swift 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47917788/

相关文章:

ios - Swift UIDocumentInteractionController 不使用设备语言

iOS - 推送通知在辞职的 IPA 中不起作用

ios - Swift 4 中的可达性问题

ios - 在 iOS 中,可达性到底意味着什么?

ios - pod 规范 lint 失败

ios - iPhone应用显示不同的名称

ios - 我无法在全局队列(背景模式)上运行进程

ios - 在 Swift 中使用 "= {}()"声明类属性的性质是什么?

ios - 如果服务器没有应答则超时

ios - 设置 WebView Delegate 后崩溃