1.模态和Push判断
模态—-从下向上弹出; push弹出—-从左到右滑出,需要使用导航条来做压栈弹栈操作。
2.模态一般作用
模态viewController用来编辑和显示一些信息。
3.模态控制器与弹出它的控制器之间交互:
官方文档建议用delegate来做。原则是谁污染谁治理。在被弹出的模态VC中定义delegate,然后在弹出VC中实现该代理,这样就可以比较方便的实现两者之间的交互。比如:在IJKVideoViewController中弹出YQKeyboardViewController,就在YQKeyboardViewController.h中这样写:
@protocol YQKeyboardViewControllerDelegate <NSObject>//代理
-(void)dismissYQKeyboardVC;//关闭模态VC
@end
//代理id
@property(nonatomic,assign)id <YQKeyboardViewControllerDelegate> delegate;
在YQKeyboardViewController.m中这样写:
[self.delegate dismissYQKeyboardVC];//让弹出自己的VC来消失自己 而不是直接自己消失
最后在IJKVideoViewController.h中实现YQKeyboardViewControllerDelegate协议,实现该方法:
-(void)dismissYQKeyboardVC{
[self dismissViewControllerAnimated:YES completion:^{}];
}