将 navigationController 堆栈中的 UIViewController 置于顶部
Bring a UIViewController in navigationController stack to top
我有一个 UINavigationController,堆栈中有多个 UIViewController。我现在想将一个特定的 UIViewController 从堆栈带到顶部,而不弹出中间的其他 UIViewController。
我能做到吗?...考虑到它的 FIFO?
不,你不能。如果您觉得有必要这样做,很可能是您的应用程序流程中需要更改某些内容。
我可以用下面的代码做到这一点
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)
然而...引用著名的杰夫·戈德布卢姆的话...太忙于思考我们是否可以停下来思考我们是否应该...这可能无法接受,但它似乎有效
将视图控制器堆栈作为数组进行操作会产生一些影响...例如。根视图控制器发生了什么...您是否在故事板中定义了它?
我有一个 UINavigationController,堆栈中有多个 UIViewController。我现在想将一个特定的 UIViewController 从堆栈带到顶部,而不弹出中间的其他 UIViewController。
我能做到吗?...考虑到它的 FIFO?
不,你不能。如果您觉得有必要这样做,很可能是您的应用程序流程中需要更改某些内容。
我可以用下面的代码做到这一点
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)
然而...引用著名的杰夫·戈德布卢姆的话...太忙于思考我们是否可以停下来思考我们是否应该...这可能无法接受,但它似乎有效
将视图控制器堆栈作为数组进行操作会产生一些影响...例如。根视图控制器发生了什么...您是否在故事板中定义了它?