在 ios swift 中导航到其他屏幕时,不鼓励在分离的视图控制器上显示视图控制器
Posted
技术标签:
【中文标题】在 ios swift 中导航到其他屏幕时,不鼓励在分离的视图控制器上显示视图控制器【英文标题】:Presenting view controllers on detached view controllers is discouraged while navigating to other screen in ios swift 【发布时间】:2015-11-03 11:38:46 【问题描述】:您好,我需要从 swift 类导航到目标 c 类,然后出现错误
“不鼓励在分离的视图控制器上显示视图控制器”并显示空白屏幕。
我添加了如下导航代码:
var captureViewCon = CaptureViewController(nibName: "CaptureViewController", bundle: nil)
self.presentViewController(captureViewCon, animated: true, completion: nil)
请帮助我。我做错了什么?
【问题讨论】:
你把这段代码放在哪里了?您的视图控制器的层次结构是什么? 您没有提供足够的信息。显示包含此代码的方法。解释什么视图控制器试图呈现另一个,呈现的视图控制器是如何显示在屏幕上的?在我看来,您是在根本不在屏幕上的视图控制器实例上调用此方法。 我在 viewDidAppear 中添加了 uibutton,在按钮目标中添加了导航到屏幕的代码 【参考方案1】:尝试将动画更改为 false,或将代码移至视图控制器生命周期的后期。或者从应用的 rootViewController 显式调用 presentViewController。
【讨论】:
【参考方案2】:如果您尝试使用 xib 文件并且您的 uiviewcontroller 在objective-c 中,那么您的代码是正确的,但是如果您尝试显示在您的stroyboard 中的uiviewcontroller 并且类在objective-c 中,那么此代码会有轻微的变化喜欢:-
let captureViewCon:UIViewController = (self.storyboard?.instantiateViewControllerWithIdentifier("FirstViewController"))!
self.presentViewController(captureViewCon, animated: true, completion: nil)
注意:- 确保在桥头文件中导入目标 c 类。
【讨论】:
我没有快速客观地使用故事板,我使用的是 xib 文件 您在此链接中给出的问题解决方案***.com/questions/19890761/…【参考方案3】:请尝试使用:
let captureViewCon:UIViewController = (self.storyboard?.instantiateViewControllerWithIdentifier("FirstViewController"))!
self.view.window?.rootViewController?.presentViewController(captureViewCon, animated: true, completion: nil)
【讨论】:
以上是关于在 ios swift 中导航到其他屏幕时,不鼓励在分离的视图控制器上显示视图控制器的主要内容,如果未能解决你的问题,请参考以下文章