显示和关闭最后一个UIViewController

时间:2015-10-19 07:46:59

标签: ios swift

我正在构建一个应用来展示UIViewController并同时关闭当前的UIViewController

目前我在viewcontroller1,我希望将viewcontroller2作为主控制器并解除viewcontroller1以将其从内存中移除,因此viewcontroller2将是呈现后的主控制器,堆栈中没有viewcontroller1

我试过了:

let controller = storyboard?.instantiateViewControllerWithIdentifier("controller2") as! viewcontroller2
controller.modalTransitionStyle = UIModalTransitionStyle.CrossDissolve

self.dismissViewControllerAnimated(false) { () -> Void in

    self.presentViewController(controller, animated: false, completion: nil)

}

但它给了我:0x7fee28711900> whose view is not in the window hierarchy!

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

如果你想完全替换UIViewController,你应该这样做:

 UIApplication.sharedApplication().keyWindow?.rootViewController = newController

然而,这不会交叉溶解。

如果需要进行交叉,您只需要提供新的视图控制器" over"旧的,或按照这篇文章中的建议重新编写Swift:

https://stackoverflow.com/a/8248284/233602