UIViewController跳转

一、UINavigationController & UITabBarController

1、pushViewController

其是UINavigationController的一个方法,UINavigationController是导航栏控制器, navigation是一个栈,通过pushViewController,popViewController进行UIViewController间的视图切换,push之后会导航栏中自动增加back按钮,点击按钮响应的动作为返回,一般不需要写返回方法。

2、presentViewController

其是UIViewController的一个方法,对应的消失方法是dismissViewController

二、UIViewController

导航栏push一个viewController的view相关设置

1、extendedlayout

设置view的top是否扩展包括navigationcontroller的部分 

typedefNS_OPTIONS(NSUInteger, UIRectEdge) {

UIRectEdgeNone=0,

UIRectEdgeTop=1<<0,

UIRectEdgeLeft=1<<1,

UIRectEdgeBottom =1<<2,

UIRectEdgeRight=1<<3,

UIRectEdgeAll=UIRectEdgeTop|UIRectEdgeLeft|UIRectEdgeBottom|UIRectEdgeRight

}

2、automaticallyAdjustsScrollViewInsets

这个属性用于设置当view是scrollview和tableview情况,通常情况下希望scrollview或tableview显示navigationbar的下方

若通过设置edgesForExtendedLayout = UIRectEdgeNone或者self.navigationController.navigationBar.translucent = no,可以让view的布局从uinavigationbar的下方开始,不过会有当view滑动时,其无法占据全屏

因此可以设置 self.automaticallyAdjustsScrollViewInsets = yes 达到此需求

3、extendedLayoutIncludesOpaqueBars

如果状态栏是不透明的,那么页面的布局默认是不会包含状态栏的,除非将这个属性设置成为YES。所以如果你的页面扩展到Navigation Bar (edgesForExtendedLayout=UIRectEdgeAll),要是这个属性设置成NO (default), 如果状态栏是不透明的话,页面是不会扩展到状态栏的



你可能感兴趣的:(UIViewController跳转)