0

我面临的问题是我在主屏幕上有四个视图控制器。如果用户直接从 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)
    }
}

请提出解决方案。提前致谢。

注意:我正在做 instantiateViewControllerWithIdentifier 但问题是它导航到我的第二个 VC,它不被接受。

4

1 回答 1

0

使用下面的代码。可能会有所帮助。

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)

如果视图控制器未添加到导航堆栈中,则首先将其添加到导航堆栈中,然后弹出该视图控制器。

于 2015-09-10T13:21:39.890 回答