如何弹出未在 Swift 中初始化的 ToViewController?
How to popToViewController which is not initialised in Swift?
我遇到了主屏幕上有四个视图控制器的问题。
如果用户直接从 Main VC 转到第二个视图控制器。我无法使用 popToViewController 导航到第一个 VC,因为在内存中我们只有两个 ViewController,即 Main VC 和我的第二个 VC .
如何导航到尚未初始化的第一个 VC?
代码如下:
var viewControllersArray : NSArray = self.navigationController!.viewControllers!
var count = viewControllersArray.count
var i = 0
for i ; i < count ; i++ {
var obj = viewControllersArray.objectAtIndex(i) as! UIViewController
if obj.isKindOfClass(ThirdVC) {
self.navigationController?.popToViewController(obj as UIViewController, animated: true)
}
}
请提出解决方案。提前致谢。
注意:我正在执行实例化ViewControllerWithIdentifier,但问题是它导航到我的第二个 VC,但未被接受。
使用下面的代码。可以帮一下。
var loginController: LoginViewController = LoginViewController(nibName:
"LoginViewController", bundle: nil)
var vcs: [AnyObject] =
NSMutableArray.arrayWithArray(self.navigationController.viewControllers)
if vcs.containsObject(loginController) {
self.navigationController.popToRootViewControllerAnimated(true)
return
}
vcs.insertObject(loginController, atIndex: vcs.count() - 1)
self.navigationController.setViewControllers(vcs, animated: false)
self.navigationController.popViewControllerAnimated(true)
如果视图控制器未添加到导航堆栈中,则首先将其添加到导航堆栈中,然后弹出该视图控制器。
我遇到了主屏幕上有四个视图控制器的问题。 如果用户直接从 Main VC 转到第二个视图控制器。我无法使用 popToViewController 导航到第一个 VC,因为在内存中我们只有两个 ViewController,即 Main VC 和我的第二个 VC .
如何导航到尚未初始化的第一个 VC?
代码如下:
var viewControllersArray : NSArray = self.navigationController!.viewControllers!
var count = viewControllersArray.count
var i = 0
for i ; i < count ; i++ {
var obj = viewControllersArray.objectAtIndex(i) as! UIViewController
if obj.isKindOfClass(ThirdVC) {
self.navigationController?.popToViewController(obj as UIViewController, animated: true)
}
}
请提出解决方案。提前致谢。
注意:我正在执行实例化ViewControllerWithIdentifier,但问题是它导航到我的第二个 VC,但未被接受。
使用下面的代码。可以帮一下。
var loginController: LoginViewController = LoginViewController(nibName:
"LoginViewController", bundle: nil)
var vcs: [AnyObject] =
NSMutableArray.arrayWithArray(self.navigationController.viewControllers)
if vcs.containsObject(loginController) {
self.navigationController.popToRootViewControllerAnimated(true)
return
}
vcs.insertObject(loginController, atIndex: vcs.count() - 1)
self.navigationController.setViewControllers(vcs, animated: false)
self.navigationController.popViewControllerAnimated(true)
如果视图控制器未添加到导航堆栈中,则首先将其添加到导航堆栈中,然后弹出该视图控制器。