iOS - 如何初始化UINavigationController以显示推送的ViewController?

Dab*_*rut 3 iphone uiviewcontroller uinavigationcontroller ipad ios

我想知道如何初始化UINavigationController以显示堆栈中的第三个视图控制器?有点像邮件应用程序.即使你杀了应用程序,当你启动它时,你会看到包含所有邮件的视图控制器,并有"后退"按钮,允许你进入邮箱列表.

谢谢你的回答.

Mut*_*tix 6

你可能想看看进入UINavigationControllersetViewControllers:animated:方法:

参数

viewControllers

视图控制器放置在堆栈中.此阵列中控制器的前后顺序表示导航堆栈中控制器的新的从下到上的顺序.因此,添加到数组的最后一项成为导航堆栈的顶部项.

动画

如果是,则为顶视图控制器的推动或弹出设置动画.如果为NO,则替换视图控制器而不使用任何动画.

讨论

您可以使用此方法更新或替换当前视图控制器堆栈,而无需显式推送或弹出每个控制器.此外,此方法允许您更新控制器集,而无需动画更改,这可能适用于您希望将导航控制器返回到先前状态的启动时间.

如果启用了动画,则此方法根据items数组中的最后一项是否已在导航堆栈中来决定执行哪种类型的转换.如果视图控制器当前在堆栈中,但不是最顶层的项,则此方法使用弹出过渡; 如果它是最顶层的项目,则不执行转换.如果视图控制器不在堆栈中,则此方法使用推送转换.仅执行一次转换,但是当转换完成时,堆栈的全部内容将替换为新的视图控制器.例如,如果控制器A,B和C位于堆栈上并且您设置了控制器D,A和B,则此方法使用弹出过渡,结果堆栈包含控制器D,A和B.

可用性

适用于iOS 3.0及更高版本.

UINavigationController类参考