说我手动切换viewcontrollers这样 How to transition to a new view controller with code only using Swift恰好在IOS根视图控制器什么/迅速
当另一个视图控制器被带到前发生了(根)控制器什么。我可以重新实例吗?或者我应该保留对它的引用吗?
说我手动切换viewcontrollers这样 How to transition to a new view controller with code only using Swift恰好在IOS根视图控制器什么/迅速
当另一个视图控制器被带到前发生了(根)控制器什么。我可以重新实例吗?或者我应该保留对它的引用吗?
不,您不必重新实例化它。您可以从UINavigationController
访问所有当前UIViewControllers
这样
self.navigationController?.viewControllers
这将返回一个[UIViewController]
。如果你想获得viewController它在index = 0
。如果你想回到root
您可以拨打
self.navigationController?.popToRootViewControllerAnimated(true)
我已经添加了这是一个评论,只是我没有足够的积分。 要回答你的问题 - 你不必担心重新实例化先前的视图控制器。如果您使用的是presentViewController:animated:completion
方法,则可以使用UIViewController类中的presentedViewController
和presentingViewController
属性,这些属性在转换后设置。
开发商下面的链接将帮助您决定如何根据你的使用情况来处理视图控制器过渡更好 -
你怎么去分配视图位指示?通过'dismissViewControllerAnimated(...)'?那会从根本上“销毁”视图控制器直到它被重新实例化吗? – MikeG
'presentViewControllerAnimated()'和'popViewControllerAnimated'被用于返回'UINavigationController'的viewcontroller堆栈中的一个viewController时使用'dismissViewControllerAnimated()'。是的两种情况(解雇/流行)解除分配和销毁viewController –
你假设他的UIViewController嵌入在导航控制器中,但并非总是如此。 –