我有一个单独的视图应用程序,并希望在按右侧的导航栏按钮时显示一个新的ViewController.我通过以下代码调用此VC:
- (IBAction)createEntryButton:(id)sender { CreateEntryViewController *vc2 = [[CreateEntryViewController alloc] init]; [self presentViewController:vc2 animated:TRUE completion:nil]; }
然而,根据我的UI,这个动画从底部带来了vc2,这似乎是违反直觉的.所以我的问题是:
如何使用presentViewController从右侧而不是底部显示我的vc2?
谢谢.
解决方法
最干净的是使用navigationController来推送和弹出视图.
如果您已经在NavigationController中
[self.navigationCtroller pushViewController:vc2 animated:TRUE completion:nil]
如果不是,请调整视图控制器添加到窗口的代码.如果您的VC是rootWindowController并且您没有使用故事板,那么这可能在您的AppDelegate中
如果您使用故事板,请调整故事板,以便您进入导航控制器
ELSE如果你因为任何原因不想这样::)只需使用[UIView animate:vc2.view ….]在2. VC的视图中手动设置动画.
内联编写 – 方法名称不匹配但显示一般方法:
UIView *v = vc2.view; CGRect f = v.frame; f.origin.x += self.view.frame.size.width; //move to right v.frame = f; [UIView animateWithDuration:0.5 animations:^{ v.frame = self.view.frame; } completion:^(BOOL finished) { [self presentViewController:vc2 animated:NO completion:nil]; }];
在完成块中呈现视图控制器vc2非动画,就像你自己已经做过的那样
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。