1、初識Modal
- (void)presentViewController:(UIViewController *)viewControllerToPresent animated: (BOOL)flag
completion:(void (^)(void))completion
- (void)dismissViewControllerAnimated: (BOOL)flag completion: (void (^)(void))completion;
2、Modal原理
present的時候,當第二個View顯示完全顯示的時候,第一個View會到一旁休息(性能問題),但是根控制器還是第一個View的Vc;
當第二個View要dismiss的時候,第一個View會出現到原來位置等待第二個View消失,同時第二個View的Vc銷燬
ps:一般Modal出來的是導航控制器
3、Modal的使用場景
一般用push
兩個控制器關聯比較強的時候使用push,弱點的時候使用Modal(比如聯繫人列表和添加界面之後使用的就是Modal)
4、Modal代碼展示
- (IBAction)jump {
// 展示MJTwoViewController,在第二個Vc中添加一個導航欄
MJTwoViewController *two = [[MJTwoViewController alloc] init];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:two];
[self presentViewController:nav animated:YES completion:^{
NSLog(@"展示MJTwoViewController完畢.......");
}];
}
- (IBAction)cancel {
[self dismissViewControllerAnimated:YES completion:^{
NSLog(@"關閉MJTwoViewController....");
}];
// [self.navigationController dismissViewControllerAnimated:YES completion:^{
// NSLog(@"關閉MJTwoViewController....");
// }];
}