将navigationController堆栈中的UIViewController置于顶部

时间:2015-01-27 15:33:26

标签: objective-c uiviewcontroller uinavigationcontroller stack

我有一个UINavigationController,堆栈中有多个UIViewControllers。我现在想把一个特定的UIViewController从堆栈带到顶部而不会弹出其他UIViewControllers。

我能做到这一点吗?......考虑到它的FIFO?

2 个答案:

答案 0 :(得分:0)

不,你不能。如果您觉得有必要这样做,可能是您的应用程序流程中需要更改某些内容。

答案 1 :(得分:0)

我能够使用以下代码

执行此操作
for controller in navigationController?.viewControllers { 
  if controller is MyViewController { 
    nextController = controller
    } 
  }

var controllers = navigationController?.viewControllers              
controllers.removeAtIndex(controllers.indexOf(nextController!)!)
controllers.append(nextController!)
navigationController?.setViewControllers(controllers, animated: false)

但是......引用着名的杰夫Goldbloom ......太忙了,想知道我们是否可以停下来思考是否应该......这可能是不可接受的,但似乎有效

将视图控制器堆栈作为数组操作有一些含义...例如。根视图控制器会发生什么...你是否在故事板中定义了它?