Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UINavigationController deinit从未调用_Ios_Swift_Uinavigationcontroller_Stack_Deinit - Fatal编程技术网

Ios UINavigationController deinit从未调用

Ios UINavigationController deinit从未调用,ios,swift,uinavigationcontroller,stack,deinit,Ios,Swift,Uinavigationcontroller,Stack,Deinit,从我的UINavigationController堆栈的一些ViewController中,我呈现了另一个ViewController,并且永远不会回来,但问题是没有调用deinit{}。导航之前,我应该如何从堆栈中删除每个ViewController?还是我应该用其他方法?现在我的代码看起来像 let destinationVC = storyboard?.instantiateViewControllerWithIdentifier("revealViewController") as! S

从我的
UINavigationController
堆栈的一些
ViewController
中,我呈现了另一个
ViewController
,并且永远不会回来,但问题是没有调用
deinit{}
。导航之前,我应该如何从堆栈中删除每个
ViewController
?还是我应该用其他方法?现在我的代码看起来像

let destinationVC = storyboard?.instantiateViewControllerWithIdentifier("revealViewController") as! SWRevealViewController
self.presentViewController(destinationVC, animated: true, completion: nil)

首先,当您调用
presentViewController:animated:completion:
时,您将在
navigationController的
层次结构之外以模式呈现新的
viewController

如果您希望在导航控制器层次结构中显示它,请使用:

self.navigationController!.pushViewController(destinationVC, animated: true)
如果要更改视图层次结构,则
navigationController
有一个属性
viewControllers
,可以设置动画或不设置动画


有关更多信息,请参阅。

首先,当您调用
presentViewController:animated:completion:
时,您将以模式方式在
导航控制器的
层次结构之外显示新的
viewController

如果您希望在导航控制器层次结构中显示它,请使用:

self.navigationController!.pushViewController(destinationVC, animated: true)
如果要更改视图层次结构,则
navigationController
有一个属性
viewControllers
,可以设置动画或不设置动画


有关更多信息,请参阅。

这有助于取消限制,但问题是我不希望我的目标ViewController嵌入NavigationController(位于其层次结构之外):我有简介VCs,在用户退出应用程序之前不会再显示。我明白了!=)听起来你们有两个不同的观景套房。我要做的是将应用程序
UIWindow
rootViewController
属性设置为所需的
viewController
,或者最好有一个baseViewController可以在不同套件之间执行切换。我通过添加
self.navigationController!解决了我的问题!。setViewController([],动画:false)
viewdiddemouse
方法。不确定这是否是正确的方法,但至少它是有效的。这有助于消除干扰,但问题是我不希望我的目标ViewController嵌入NavigationController(位于其层次结构之外):我有简介VCs,在用户退出应用程序之前不会再显示。我明白了!=)听起来你们有两个不同的观景套房。我要做的是将应用程序
UIWindow
rootViewController
属性设置为所需的
viewController
,或者最好有一个baseViewController可以在不同套件之间执行切换。我通过添加
self.navigationController!解决了我的问题!。setViewController([],动画:false)
viewdiddemouse
方法。不确定这是否是正确的方法,但至少它是有效的。