警告:尝试显示不在窗口层次结构中的视图!迅速

Posted

技术标签:

【中文标题】警告:尝试显示不在窗口层次结构中的视图!迅速【英文标题】:Warning: Attempt to present whose view is not in the window hierarchy! swift 【发布时间】:2017-04-17 14:44:44 【问题描述】:

我需要有关 UIWebView 的帮助,因此用户单击“登录”并打开一个网页以输入用户名,并调用下面的代码来更改控制器:

let tela = self.storyboard?.instantiateViewController(withIdentifier: "TabPrincipal") as! TabPrincipalViewController
                    tela.modalTransitionStyle = .crossDissolve
                    self.present(tela, animated: true, completion: nil)

一旦我点击退出并再次使用同一段代码,它会显示

警告:尝试显示不在窗口层次结构中的视图!

谁能帮帮我?

【问题讨论】:

你的注销代码是什么样的,即它对主窗口的rootViewController有什么作用? 你好@NRitH,在“LogoutViewController.swift”中,我正在发出警告,如果“是”,它会再次显示登录选项页面,如果不是,不要做任何事情。此注销代码适用于我拥有的其他登录选项......它不适用于我使用linkedin oauth2如果用户没有安装应用程序打开网页的这个选项。 【参考方案1】:

试试这个注销按钮

self.dismiss(动画:真,完成:无)

【讨论】:

你好@Manvir Singh,在“LogoutViewController.swift”中我正在发出警告,如果“是”,它会再次显示登录选项页面,如果不是,不要做任何事情。此注销代码适用于我拥有的其他登录选项......它不适用于我使用linkedin oauth2如果用户没有安装应用程序打开网页的这个选项。【参考方案2】:

如果您呈现视图控制器,则使用此关闭视图控制器代码

self.dismissViewControllerAnimated(true, completion: );

如果您使用导航控制器导航视图控制器,则使用此弹出视图控制器代码

self.navigationController?.popViewControllerAnimated(true);

【讨论】:

以上是关于警告:尝试显示不在窗口层次结构中的视图!迅速的主要内容,如果未能解决你的问题,请参考以下文章

尝试显示其视图不在窗口层次结构警报中

警告:尝试在视图不在窗口层次结构中的 <App name:> 上显示 <UIAlertController:>

警告:尝试在其视图不在窗口层次结构中的 * 上呈现 * - swift

警告:尝试呈现不在窗口层次结构中的视图!在 UISearchController

警告“尝试呈现视图不在窗口层次结构中的 ViewController - Objective C

警告:尝试在视图不在窗口层次结构中的 **.ViewController 上呈现 ZMNavigationController