Modal
除了push之外,還有另外一種控制器的切換方式,那就是Modal
任何控制器都能通過Modal的形式展示出來
Modal的默認(rèn)效果:新控制器從屏幕的最底部往上鉆,直到蓋住之前的控制器為止
以Modal的形式展示控制器- (void)presentViewController:(UIViewController*)viewControllerToPresent animated: (BOOL)flag completion:(void(^)(void))completion關(guān)閉當(dāng)初Modal出來的控制器- (void)dismissViewControllerAnimated: (BOOL)flag completion: (void(^)(void))completion;
注意點(diǎn)
誰modal誰就強(qiáng)引用modal出來的控制器 如果一個(gè)控制器的view顯示到屏幕上,這個(gè)控制器一定不能被銷毀.
modal的底層實(shí)現(xiàn)
自己需要Modal出OneViewController的view
1.把OneViewController的view添加到窗口上,移除之前窗口上的viewUIWindow*keyWindow = [UIApplicationsharedApplication].keyWindow;[keyWindow addSubview:oneVc.view];
2.慢慢往上鉆的動(dòng)畫//先設(shè)置形變oneVc.view.transform=CGAffineTransformMakeTranslation(0, keyWindow.bounds.size.height);[UIViewanimateWithDuration:0.5animations:^{// 還原形變oneVc.view.transform=CGAffineTransformIdentity;? } completion:^(BOOLfinished) {? ? ? [self.viewremoveFromSuperview];? }];}