使用setViewControllers时的过渡样式:动画:在UINavigationController上

Smi*_*key 9 xcode objective-c uiviewcontroller uinavigationcontroller ios

我通过执行以下操作将一个新的ViewControllers堆栈设置到我的navigationController:

 MainMenuViewController *mainMenuViewController = [[MainMenuViewController alloc] init];
NSArray *controllerArray = [NSArray arrayWithObject:mainMenuViewController];
[mainMenuViewController release];
[self.navController setViewControllers:controllerArray animated:YES];
Run Code Online (Sandbox Code Playgroud)

唯一的问题是我似乎无法设置过渡风格.理想情况下,我希望它能够翻转.这可能吗?重要的是我使用setViewControllers:animated而不是presentModalViewController,因为我在堆栈之间来回切换,并希望维护每个堆栈的导航控制行为.

QED*_*QED 0

与其交换整个导航堆栈,为什么不只维护两个导航控制器并为它们之间的转换设置动画呢?对我来说似乎更干净。

更新

我想如果我知道你想要实现什么,我可以提供更好的帮助,但我知道你可以从第一个导航控制器中模态地呈现第二个导航控制器,并且你可以在演示之前/之后将一堆视图推送到它上面,等等此外,彻底替换现有的视图控制器堆栈(尤其是很深的情况)可能会让用户感到困惑,更不用说苹果审核团队了。

在内存中维护两个导航控制器不一定是一件大事,只要您内存(您可能有),并且只要用户真正受益。

也许你可以阐明你的高层次目标,我们可以从那里开始。

更多的

如果你想让它翻转,那么你可以设置navController2.modalTranstitionStyle = UIModalTransitionStyleFlipHorizontal,这将导致navController2模态呈现时翻转。

因此,我们在下面发表评论时出现了一些奇怪的故障,它可能会丢失您的更新。