我有一个 UINavigationViewController ,根视图有一个 UITableViewController . 当用户选择单元格时, UIViewController 被推入 .
我的主 UIViewController 有一个按钮,以模态方式显示 UINavigationViewController ,但我还有另一个按钮,我想用它直接进入 UINavigationViewController 的推 UIViewController .
通过使用以下代码,显示两个动画,首先发生 UINavigationViewController ,完成后发生 UIViewController .
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle: nil];
UINavigationController *navController = [mainStoryboard instantiateViewControllerWithIdentifier: @"SettingsNavigationController"];
UIViewController *viewController = [mainStoryboard instantiateViewControllerWithIdentifier: @"MyInfoViewController"];
[self presentViewController:navController
animated:YES
completion:^
{
[navController pushViewController:viewController animated:YES];
}];
这看起来不错,但我想要的是显示推送 UIViewController 只有1个动画(甚至没有动画),好像我的主视图呈现它,但保持功能,当用户按下这个 UIViewController 它回去到 UINavigationViewController .
如果我将"animated"都设置为NO,则 UIViewController 显示非常快,但仍然可以看到 UINavigationViewController 的一瞥 .
我遇到的一个可能的解决方案是获取主视图的"snapshot"并将其传递给 UINavigationViewController 以使用它来隐藏其内容,同时显示所需的 UIViewController .
注意:它适用于iOS 7和8
2 回答
在没有动画 before 呈现导航控制器的情况下推动视图控制器 .