Swift UINavigationController(导航控制器)的创建及导航栏的设置

来源:互联网 发布:鬼吹灯哪部最好看 知乎 编辑:程序博客网 时间:2024/05/16 08:35

Swift语言新建的项目入口为AppDelegate.swift

我们找到

[objc] view plaincopy
  1. func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool   

来创建导航控制器

[objc] view plaincopy
  1. let VC=ViewController()  
  2.   
  3. let navigationC=UINavigationController(rootViewController: VC)  
  4. self.window?.rootViewController=navigationC  
  5.   
  6. self.window?.backgroundColor=UIColor.whiteColor()  
  7.   
  8. return true  

我们如果没有动过默认的ViewController.swift  那么会出来如下效果

会发现上变多另一个导航栏


下边我们尝试设置一下导航栏

我们在ViewController的viewDidLoad中设置

[objc] view plaincopy
  1.         //设置设置导航栏标题  
  2.         self.title="主页"  
  3.         //设置导航栏背景色  
  4.         self.navigationController?.navigationBar.barTintColor=UIColor.grayColor()  
  5. //        //导航栏还可以设置图片.  
  6. //        self.navigationController?.navigationBar.setBackgroundImage(UIImage(named: "testnavigationBar"), forBarMetrics: UIBarMetrics.Default)  


下边我们给ViewController添加子视图

[objc] view plaincopy
  1. //添加View  
  2. let view1=UIView(frame: CGRectMake(1002120120))  
  3. view1.backgroundColor=UIColor.redColor()  
  4. self.view.addSubview(view1)  


我们会发现子视图被导航栏遮挡了


这是因为坐标系统是从左上角开始的,我们将子视图y坐标设置为20就跑到导航栏下方去了

这是的可以通过修改坐标来实现

也可以设置导航栏属性来实现

[objc] view plaincopy
  1. self.navigationController?.navigationBar.translucent=false  

同时我们还能隐藏导航栏

[objc] view plaincopy
  1. self.navigationController?.navigationBarHidden=true  
0 0
原创粉丝点击