iOS開發UI篇 -- 04011控制器切換方式之Modal介紹

1、初識Modal

除了push之外,還有另外一種控制器的切換方式,那就是Modal
任何控制器都能通過Modal的形式展示出來
Modal的默認效果:新控制器從屏幕的最底部往上鑽,直到蓋住之前的控制器爲止
Modal的形式展示控制器

- (void)presentViewController:(UIViewController *)viewControllerToPresent animated: (BOOL)flag completion:(void (^)(void))completion

關閉當初Modal出來的控制器

- (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....");
//    }];
}





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章