![](/img/trans.png)
[英]When My root view goes to another View, is there a way for that view to make changes to the root View?
[英]Alert view center changes when another view is presented on root view
在应用程序中,当没有互联网连接时,我会显示警报(在根视图控制器上显示)。 应用程序上也有Biometric authentication
。 所以每当出现生物页面(生物页还显示根视图控制器)上的顶部alertview
并删除从视图,警报视图限制变更,也不在中间显示。
第1步:-
显示错误信息
显示警报代码:-
func showAlert(title:String, message: String, buttons: [UIAlertAction]) {
// create the alert
self.alert.title = title
self.alert.message = message
// add an action (button)
if buttons.count == 0 {
self.alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.default, handler: nil))
} else {
for i in 0...buttons.count-1 {
self.alert.addAction(buttons[i])
}
}
self.viewController.present(alert, animated: true, completion: nil)
}
第2步:-
退出应用程序并显示生物特征验证视图。
应用代理文件:-
func applicationDidBecomeActive(_ application: UIApplication) {
if self.userToken != "" && self.biometricStatus && !UserAccessTemp.isBiometricActive {
let controller = BiometricCheckViewController.instantiate(fromAppStoryboard: .BiometricCheck)
if let window = self.window, let rootViewController = window.rootViewController {
var currentController = rootViewController
while let presentedController = currentController.presentedViewController {
currentController = presentedController
}
currentController.present(controller, animated: true, completion: nil)
}
}
步骤3:
关闭生物特征验证视图后,警报视图对齐方式会发生变化
那么在关闭生物特征视图后如何重新设置警报视图的中心?
只需将makeKeyAndVisible()
放到Biometric视图中,即可解决问题。 感谢Deepika的评论。
func applicationDidBecomeActive(_ application: UIApplication) {
if self.userToken != "" && self.biometricStatus && !UserAccessTemp.isBiometricActive {
let controller = BiometricCheckViewController.instantiate(fromAppStoryboard: .BiometricCheck)
let alertWindow = UIWindow(frame: UIScreen.main.bounds)
alertWindow.rootViewController = UIViewController()
alertWindow.windowLevel = UIWindowLevelAlert + 1;
alertWindow.makeKeyAndVisible()
alertWindow.rootViewController?.present(controller, animated: true, completion: nil)
}
}
尝试:
func showAlert(title:String, message: String, buttons: [UIAlertAction]) {
// create the alert
self.alert.title = title
self.alert.message = message
// add an action (button)
if buttons.count == 0 {
self.alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.default, handler: nil))
} else {
for i in 0...buttons.count-1 {
self.alert.addAction(buttons[i])
}
}
if var topController = UIApplication.sharedApplication().keyWindow?.rootViewController {
while let presentedViewController = topController.presentedViewController {
topController = presentedViewController
}
topController.present(alert, animated: true, completion: nil)
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.