如何解决此错误“警告:尝试呈现其视图不在窗口层次结构中”?
Posted
技术标签:
【中文标题】如何解决此错误“警告:尝试呈现其视图不在窗口层次结构中”?【英文标题】:How to solve this error "Warning:Attempt to present whose view is not in the window hirearchy"? 【发布时间】:2019-05-18 18:44:57 【问题描述】:我正在开发一个 ios 应用程序,但我没有情节提要,并且我执行纯 swift 代码,当我尝试检查 MainViewController 中的身份验证并使用 perform 转到另一个 ViewController如果令牌不存在,则 MainViewController 中的显示按钮我遇到了这个警告,它将不起作用。
当我使用 perform(如下面的 sn-p)通过单击按钮转到另一个 ViewController 时,它工作得很好。
我已经看到了我在这里问的标题的所有答案,但是所有示例都有故事板,所以它与我在这里的问题无关。
这是我尝试在我的应用中执行的 sn-p。
if defaults.string(forKey: Constants().userTokenKey) != nil
&& defaults.string(forKey: Constants().userTokenKey) != ""
print("YOU ARE IN ELSE!")
let vc = SelectLocationOnMapViewController()
UIApplication.topViewController()?.present(vc, animated: true, completion: nil)
else
UIView.animate(withDuration: 1, animations:
self.loginRegisterParentView.alpha = 1.0
)
setButtonActions()
【问题讨论】:
【参考方案1】:问题来了
UIApplication.topViewController()?.present(vc, animated: true, completion: nil)
您似乎使用尚未完全呈现的 rootVC 来呈现另一个 Vc ,您需要将此代码从 viewDidLoad
移至 viewWillAppear/viewDidAppear
【讨论】:
以上是关于如何解决此错误“警告:尝试呈现其视图不在窗口层次结构中”?的主要内容,如果未能解决你的问题,请参考以下文章
如何解决颤振中的 build.gradle 错误。如何解决此错误“评估项目 ':app' 时出现问题。> 格式错误的 \uxxxx 编码。”