//创建导航视图控制器
//根据一个根视图控制器
letvc =ViewController()
letnavc =UINavigationController(rootViewController: vc)
//加应用的根视图控制图设置为导航视图控制器
window=UIWindow(frame:UIScreen.mainScreen().bounds)
window?.rootViewController= navc
window?.makeKeyAndVisible()
//每一个被导航视图控制所管理的视图控制器都有一个navigationItem(这里面包含了左按钮,右按钮,中间标题,中间视图)
//设置导航栏的标题
navigationItem.title="Setting"
//设置导航栏左按钮(UIBarButtonItem)
letleftBarBtn =UIBarButtonItem(barButtonSystemItem:UIBarButtonSystemItem.Search, target:self, action:"leftBtnAction")
navigationItem.leftBarButtonItem= leftBarBtn
//设置导航栏的中间视图
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)
//导航栏(UINavigationBar)在本类中(视图)访问navigationController就是获取到本视图控制器所在的导航视图控制器
//设置导航栏是否隐藏
navigationController?.navigationBarHidden=false//true是隐藏
//设置导航栏的样式
navigationController?.navigationBar.barStyle= .Black//.Black .Defualt
//设置导航栏的背景颜色
navigationController?.navigationBar.backgroundColor=UIColor.grayColor()
//设置导航栏本身的颜色
navigationController?.navigationBar.barTintColor=UIColor.yellowColor()
//设置导航栏元素的颜色(例如左按钮,右按钮,中间标题)
navigationController?.navigationBar.tintColor=UIColor.redColor()
//导航栏半透明效果(0,0)点在左上角//false (0,0)点在导航栏的左下角
navigationController?.navigationBar.translucent=true
lettempview =UIView(frame:CGRectMake(0,64,150,150))
tempview.backgroundColor=UIColor.blueColor()
view.addSubview(tempview)
}
funcrightBtnAction(){
//跳转第二个控制器页面
//(1)创建第二个控制器
letsecondvc =SecondViewController()
//(2)使用当前控制器所在的导航视图控制器跳转到第二个控制器push
navigationController?.pushViewController(secondvc, animated:true)
print("click right Btn")
}
funcleftBtnAction(){
print("click left Btn")
}
//将SecondVc出栈popViewControllerAnimated:将当前显示在栈顶的控制器出栈(回到上一个页面)
navigationController?.popViewControllerAnimated(true)
//跳到指定的视图先拿到栈里所有的视图控制器
//let viewcd = navigationController?.viewControllers
////获取根视图控制器(因为根视图控制器是最先入栈,所以在第0个下标)
//let rootVc: AnyObject = viewcd![0]
//点击按钮模态显示第六个视图控制器
funcprserntTosix(){
//创建第六个视图控制器
letsixvc =SixViewController()
//模态显示,根导航视图控制器没有关系
presentViewController(sixvc, animated:true) { () ->Voidin
print("模态动作完成")
}//completion是一个闭包模态显示完成之后要执行的闭包
}
funcback(){
//(1)第一种方式:模态消失过程不可定制化
dismissViewControllerAnimated(true, completion: { () ->Voidin
})//(2)第二种方式:模态消失过程可定制化(需不需要动画,模态结束后执行代码段)
}