一蛉拙、UINavigationController & UITabBarController
1瑰妄、pushViewController
其是UINavigationController的一個(gè)方法起便,UINavigationController是導(dǎo)航欄控制器罕邀, navigation是一個(gè)棧,通過pushViewController蛉顽,popViewController進(jìn)行UIViewController間的視圖切換蝗砾,push之后會(huì)導(dǎo)航欄中自動(dòng)增加back按鈕先较,點(diǎn)擊按鈕響應(yīng)的動(dòng)作為返回,一般不需要寫返回方法悼粮。
2闲勺、presentViewController
其是UIViewController的一個(gè)方法,對(duì)應(yīng)的消失方法是dismissViewController
二扣猫、UIViewController
導(dǎo)航欄push一個(gè)viewController的view相關(guān)設(shè)置
1菜循、extendedlayout
設(shè)置view的top是否擴(kuò)展包括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
這個(gè)屬性用于設(shè)置當(dāng)view是scrollview和tableview情況申尤,通常情況下希望scrollview或tableview顯示navigationbar的下方
若通過設(shè)置edgesForExtendedLayout = UIRectEdgeNone或者self.navigationController.navigationBar.translucent = no癌幕,可以讓view的布局從uinavigationbar的下方開始,不過會(huì)有當(dāng)view滑動(dòng)時(shí)昧穿,其無法占據(jù)全屏
因此可以設(shè)置 self.automaticallyAdjustsScrollViewInsets = yes 達(dá)到此需求
3勺远、extendedLayoutIncludesOpaqueBars
如果狀態(tài)欄是不透明的,那么頁面的布局默認(rèn)是不會(huì)包含狀態(tài)欄的时鸵,除非將這個(gè)屬性設(shè)置成為YES胶逢。所以如果你的頁面擴(kuò)展到Navigation Bar (edgesForExtendedLayout=UIRectEdgeAll),要是這個(gè)屬性設(shè)置成NO (default), 如果狀態(tài)欄是不透明的話饰潜,頁面是不會(huì)擴(kuò)展到狀態(tài)欄的