我在该项目的一个演示项目中创建了可达性我有两个 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/