[英]how to disable all user interaction in UIWebView except scroll interaction
[英]How to disable user interaction for all UIViewControllers when user is not connected to the internet?
我知道如何检查用户是否连接到互联网: https : //stackoverflow.com/a/39782859/9735046
如果用户未连接到互联网,如何禁用所有UI View Controller的用户交互?
好吧,我必须指出,从UX的角度来看,阻塞整个UI并不是一个好主意:)
也就是说,阻止交互的一种普遍应用的解决方案是模态地显示某种弹出窗口,直到操作完成(或者,在您的情况下,重新确定可达性)。 此弹出窗口至少可以向用户显示发生了什么情况(“请等待,没有可用的互联网连接”或类似的提示)。
最简单的解决方案是只使用不带按钮的UIAlertViewController
; CocoaPods也有很多不错的组件。
我已经为此制作了一个屏幕,当Internet断开时它将推送当前的导航堆栈,而当Internet连接时我会弹出该屏幕,并显示最后一个导航堆栈的顶部Viewcontroller
只需将此代码放在您的Appdelegate didFinish启动方法中
AFNetworkReachabilityManager.shared().startMonitoring()
AFNetworkReachabilityManager.shared().setReachabilityStatusChange
{ (status: AFNetworkReachabilityStatus) -> Void in
if ((status == .notReachable) && !
(self.mainNav.topViewController is InternetViewController))
{
let internetVC:InternetViewController = storyboard.instantiateViewController(withIdentifier: "InternetViewController") as! InternetViewController
self.mainNav.pushViewController(internetVC, animated: true)
}
else if ((status != .notReachable) && (self.mainNav.topViewController is InternetViewController))
{
self.mainNav.popViewController(animated: true)
}
}
通过此代码,您可以实现这种结果,并且看起来更加专业和用户友好,如果禁用UIView,并且用户现在知道互联网已断开连接,则用户可以轻松地知道互联网已关闭,他认为您的应用程序已卡死
只需显示NoInternetView并显示标签“ No internet connection”和按钮“ Try again”。 如果存在连接,请隐藏视图。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.