Ste*_*lin 3 uialertview ios firebase swift swift4
我正在使用,swift 4并且尝试alertView使用进行用户注册时出错时尝试创建一个Firebase。我有一个IBActionfor sign up按钮,它将使用两个文本来注册用户textfields,一个用于电子邮件,一个用于密码。
我基本上是在尝试显示alertview注册过程中出现错误时(例如,有一个Empty)textfield。
我将函数的屏幕快照附加到发生的地方。我知道我实际上遇到了错误,因为如果有一个print语句,则会输出一个错误。
无论是否存在错误,都不会显示警报视图,并且该应用程序会执行segue。
2019-01-15 21:40:26.368924-0500 Pronto [9036:225268]警告:尝试呈现其视图不在窗口层次结构中的视图
这是我现在显示的alertview的输出。我看过所有其他关于同一问题的文章,但似乎都没有。
Jar*_*ger 15
发生此问题是由于您的视图层次结构。
您需要找出视图层次结构中当前/最高视图控制器是什么,并在其上显示警报。
要找出最顶层的视图控制器,请使用以下代码:
func getTopMostViewController() -> UIViewController? {
var topMostViewController = UIApplication.shared.keyWindow?.rootViewController
while let presentedViewController = topMostViewController?.presentedViewController {
topMostViewController = presentedViewController
}
return topMostViewController
}
Run Code Online (Sandbox Code Playgroud)
并在最顶层的视图控制器上显示警报,并使用主线程来显示警报,因为闭包可能在另一个线程上起作用。
DispatchQueue.main.async {
getTopMostViewController()?.present(alertController, animated: true, completion: nil)
}
Run Code Online (Sandbox Code Playgroud)
请参考以下堆栈答案: Swift 3尝试显示其视图不在窗口层次结构中
| 归档时间: |
|
| 查看次数: |
5635 次 |
| 最近记录: |