【发布时间】:2014-10-10 08:19:13
【问题描述】:
我有一个 UINavigationViewController,它有一个 UITableViewController 作为根视图。当用户选择一个单元格时,一个 UIViewController 被推入。
我的主 UIViewController 有一个按钮以模态方式显示 UINavigationViewController,但我还有另一个按钮,我想用它直接进入推送的 UIViewController UINavigationViewController 的。
通过使用下面的代码,两个动画都会显示,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。
如果我将“动画”都设置为 NO,UIViewController 会显示得很快,但仍然可以看到 UINavigationViewController。
我想到的一个可能的解决方案是拍摄主视图的“快照”并将其传递给 UINavigationViewController 以使用它来隐藏其内容,而想要的 UIViewController 出现。
注意:它应该适用于 iOS 7 和 8
【问题讨论】:
标签: ios objective-c