定义区别
pushViewController 导航控制器入栈的方式切换页面
presentViewController 模态切换的方式切换页面
先上模态视图
模态视图和非模态都是子视图,属于App的主要窗口,区别是:
“一个模态窗口创建了一个使主窗口被禁用的模式,但仍然保持主窗口可见。用户必须先与模态窗口交换才能返回主应用。”-维基百科
我感觉就像弹出一个对话框一样,必须先交互。
移动端的屏幕空间有限,所以大多数模态屏幕占了整个屏幕。
就是presentViewController,它用于不同“业务”界面跳转,而push用于同一业务内跳转
presenting view controller & presented view controller
多读读英文还是有好处
// The view controller that was presented by this view controller or its nearest ancestor.
//此视图控制器或其最近祖先显示的视图控制器。
@property(nullable, nonatomic,readonly) UIViewController *presentedViewController NS_AVAILABLE_IOS(5_0);
// The view controller that presented this view controller (or its farthest ancestor.)
//显示此视图控制器(或其最远祖先)的视图控制器。
@property(nullable, nonatomic,readonly) UIViewController *presentingViewController NS_AVAILABLE_IOS(5_0