Ios 显示并关闭最后一个UIViewController
我正在构建一个应用程序来显示Ios 显示并关闭最后一个UIViewController,ios,swift,Ios,Swift,我正在构建一个应用程序来显示UIViewController,同时关闭当前的UIViewController 目前我在viewcontroller1中,我想将viewcontroller2显示为主控制器,并关闭viewcontroller1以将其从内存中删除,因此viewcontroller2将是显示后的主控制器,堆栈中没有viewcontroller1 我试过: let controller = storyboard?.instantiateViewControllerWithIdentifi
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>,它的视图不在窗口层次结构中代码>
有办法吗?如果您想完全更换UIViewController
,您应该这样做:
UIApplication.sharedApplication().keyWindow?.rootViewController = newController
然而,这不会交叉溶解
如果您需要交叉,您只需在旧视图控制器的“上方”显示新视图控制器,或者按照本文中的建议重新编写:
如果要完全更换UIViewController
,应执行以下操作:
UIApplication.sharedApplication().keyWindow?.rootViewController = newController
然而,这不会交叉溶解
如果您需要交叉,您只需在旧视图控制器的“上方”显示新视图控制器,或者按照本文中的建议重新编写:
我在哪里可以这样做?在viewDidLoad中显示第二个控制器?因此,通过应用您的代码,它将从内存中删除旧的视图控制器?我建议您集中显示视图控制器的逻辑-可能在您的应用程序委托中,或者更好,在专用的控制器类中,并将上述代码放在其中。更新了答案,并链接到一篇文章,向您展示如何制作动画。我在哪里可以这样做?在viewDidLoad中显示第二个控制器?因此,通过应用您的代码,它将从内存中删除旧的视图控制器?我建议您集中显示视图控制器的逻辑-可能在您的应用程序委托中,或者更好,在专用的控制器类中,并将上述代码放在其中。更新了答案,并提供了一个链接,指向如何设置动画的帖子。