//創(chuàng)建導(dǎo)航視圖控制器
//根據(jù)一個根視圖控制器
letvc =ViewController()
letnavc =UINavigationController(rootViewController: vc)
//加應(yīng)用的根視圖控制圖設(shè)置為導(dǎo)航視圖控制器
window=UIWindow(frame:UIScreen.mainScreen().bounds)
window?.rootViewController= navc
window?.makeKeyAndVisible()
//每一個被導(dǎo)航視圖控制所管理的視圖控制器都有一個navigationItem(這里面包含了左按鈕笤受,右按鈕稚晚,中間標(biāo)題召噩,中間視圖)
//設(shè)置導(dǎo)航欄的標(biāo)題
navigationItem.title="Setting"
//設(shè)置導(dǎo)航欄左按鈕(UIBarButtonItem)
letleftBarBtn =UIBarButtonItem(barButtonSystemItem:UIBarButtonSystemItem.Search, target:self, action:"leftBtnAction")
navigationItem.leftBarButtonItem= leftBarBtn
//設(shè)置導(dǎo)航欄的中間視圖
letsegment =UISegmentedControl(items: ["1","2"])
segment.frame=CGRectMake(0,0,100,30)
segment.selectedSegmentIndex=0
navigationItem.titleView= segment
segment.addTarget(self, action:"rightBtnAction", forControlEvents:UIControlEvents.ValueChanged)
//導(dǎo)航欄(UINavigationBar)在本類中(視圖)訪問navigationController就是獲取到本視圖控制器所在的導(dǎo)航視圖控制器
//設(shè)置導(dǎo)航欄是否隱藏
navigationController?.navigationBarHidden=false//true是隱藏
//設(shè)置導(dǎo)航欄的樣式
navigationController?.navigationBar.barStyle= .Black//.Black .Defualt
//設(shè)置導(dǎo)航欄的背景顏色
navigationController?.navigationBar.backgroundColor=UIColor.grayColor()
//設(shè)置導(dǎo)航欄本身的顏色
navigationController?.navigationBar.barTintColor=UIColor.yellowColor()
//設(shè)置導(dǎo)航欄元素的顏色(例如左按鈕,右按鈕,中間標(biāo)題)
navigationController?.navigationBar.tintColor=UIColor.redColor()
//導(dǎo)航欄半透明效果(0,0)點在左上角//false (0,0)點在導(dǎo)航欄的左下角
navigationController?.navigationBar.translucent=true
lettempview =UIView(frame:CGRectMake(0,64,150,150))
tempview.backgroundColor=UIColor.blueColor()
view.addSubview(tempview)
}
funcrightBtnAction(){
//跳轉(zhuǎn)第二個控制器頁面
//(1)創(chuàng)建第二個控制器
letsecondvc =SecondViewController()
//(2)使用當(dāng)前控制器所在的導(dǎo)航視圖控制器跳轉(zhuǎn)到第二個控制器push
navigationController?.pushViewController(secondvc, animated:true)
print("click right Btn")
}
funcleftBtnAction(){
print("click left Btn")
}
//將SecondVc出棧popViewControllerAnimated:將當(dāng)前顯示在棧頂?shù)目刂破鞒鰲?回到上一個頁面)
navigationController?.popViewControllerAnimated(true)
//跳到指定的視圖先拿到棧里所有的視圖控制器
//let viewcd = navigationController?.viewControllers
////獲取根視圖控制器(因為根視圖控制器是最先入棧,所以在第0個下標(biāo))
//let rootVc: AnyObject = viewcd![0]
//點擊按鈕模態(tài)顯示第六個視圖控制器
funcprserntTosix(){
//創(chuàng)建第六個視圖控制器
letsixvc =SixViewController()
//模態(tài)顯示,根導(dǎo)航視圖控制器沒有關(guān)系
presentViewController(sixvc, animated:true) { () ->Voidin
print("模態(tài)動作完成")
}//completion是一個閉包模態(tài)顯示完成之后要執(zhí)行的閉包
}
funcback(){
//(1)第一種方式:模態(tài)消失過程不可定制化
dismissViewControllerAnimated(true, completion: { () ->Voidin
})//(2)第二種方式:模態(tài)消失過程可定制化(需不需要動畫,模態(tài)結(jié)束后執(zhí)行代碼段)
}