参考:正确使用PresentModalViewController 打开链接
总结一下就两点:
1. presentViewController 时候可以指定弹出时的动画风格
2. 适用场景需要注意
3. 通过delegate实现参数交互:见参考文章,
1. presenting view controller Vs presented view controller当我们在view controller A中模态显示view controller B的时候,A就充当presenting view controller(弹出VC),而B就是presented view controller(被弹出VC)。官方文档建议这两者之间通过delegate实现交互,如果使用过UIImagePickerController从系统相册选取照片或者拍照,我们可以发现imagePickerController和弹出它的VC之间就是通过UIImagePickerControllerDelegate实现交互的。因此我们在实际应用用,最好也遵守这个原则,在被弹出的VC中定义delegate,然后在弹出VC中实现该代理,这样就可以比较方便的实现两者之间的交互。
//self跳转到testVC
-(void)btn1Clicked{
TestViewController *testVC = [[TestViewController alloc] init];
/*
typedef enum {
UIModalTransitionStyleCoverVertical = 0, 从底部,从下向上覆盖
UIModalTransitionStyleFlipHorizontal, 水平翻页(沿着Y轴,屏幕中间点翻页)
UIModalTransitionStyleCrossDissolve, 溶解消失
UIModalTransitionStylePartialCurl, 从右下角翻书页
} UIModalTransitionStyle;
*/
//设置将要跳转的vc,dismiss时候也是同样的动画(弹出时的动画风格)
testVC.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentViewController:testVC animated:YES completion:nil];
// [self presentModalViewController:testVC animated:YES];
}
//TestViewController自己消失
- (IBAction)backButtonClicked:(id)sender {
[self dismissViewControllerAnimated:YES completion:nil];
// [self dismissModalViewControllerAnimated:YES];
}