当前位置:   article > 正文

21.UINavigationController和UINavigationBar的使用小技巧_uinavigationbar decoded as unlocked for uinavigati

uinavigationbar decoded as unlocked for uinavigationcontroller

在许多应用中, 我们最常用到的控件之一就是UINavigationBar和UINavigationController, 但这里有一些细节需要注意, 下面让我们一起来看看吧.


1.准备界面

1


2.预备知识

初始化UIBarButtonItem有好几种方法, 如下:

    // 1.自定义图片的UIBarButtonItem样式 
    init(image: UIImage?, style: UIBarButtonItemStyle, target: AnyObject?, action: Selector) 

    // 2.自定义风景图片的UIBarButtonItem样式 
    init(image: UIImage?, landscapeImagePhone: UIImage?, style: UIBarButtonItemStyle, target: AnyObject?, action: Selector) 

    // 3.自定义纯文字的的UIBarButtonItem样式 
    init(title: String?, style: UIBarButtonItemStyle, target: AnyObject?, action: Selector) 

    // 4.使用系统自带的UIBarButtonItem样式 
    init(barButtonSystemItem systemItem: UIBarButtonSystemItem, target: AnyObject?, action: Selector) 

    // 5.自定义视图的UIBarButtonItem样式 
    init(customView: UIView)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

3.ViewControllerOne

override func viewDidLoad() { 
    super.viewDidLoad() 

    // 1.设置UINavigationBar的背景颜色 
    self.navigationController?.navigationBar.backgroundColor = UIColor.redColor() 

    // 2.设置UINavigationBar的样式 、
    self.navigationController?.navigationBar.barStyle = UIBarStyle.BlackTranslucent 

    // 3.开启UINavigationBar的透明效果 
    self.navigationController?.navigationBar.translucent = true 
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

4.VIewControllerTwo

class ViewControllerTwo: UIViewController, UIGestureRecognizerDelegate { 

    override func viewDidLoad() { 
        super.viewDidLoad() 

        // 1.调用自定义的BarButtonItem方法 
        self.customNavigationBarButtonItem() 
    } 

    override func didReceiveMemoryWarning() { 
        super.didReceiveMemoryWarning() 
    } 

    // 2.自定义BarButtonItem 
    func customNavigationBarButtonItem() { 

        // 2.1.自定义左上角的BarButtonItem, UIBarButtonItemStyle的样式在iOS8之后只能选择Plain和Done, Bordered样式已经被弃用了 
        let leftBarButtonItem = UIBarButtonItem(title: "左边", style: UIBarButtonItemStyle.Plain, target: self, action: "leftBarButton") 

        // 2.2.自定义右上角的BarButtonItem, UIBarButtonItemStyle的样式在iOS8之后只能选择Plain和Done, Bordered样式已经被弃用了 
        let rightBarButtonItem = UIBarButtonItem(title: "右边", style: UIBarButtonItemStyle.Plain, target: self, action: "rightButton") 

        // 2.3.只适用于系统的BackItem, 自定义的leftBarButtonItem不适用 
        //UIBarButtonItem.appearance().setBackButtonTitlePositionAdjustment(UIOffsetMake(0, -60), forBarMetrics: UIBarMetrics.Default) 

        // 2.4.设置手势的代理对象为self 
        self.navigationController?.interactivePopGestureRecognizer.delegate = self; 

        // 2.5.添加自定义的rightBarButtonItem 
        self.navigationItem.rightBarButtonItem = rightBarButtonItem 

        // 2.6.添加自定义的leftBarButtonItem 
        self.navigationItem.leftBarButtonItem = leftBarButtonItem 

        // 2.7.目前找不到直接自定义backBarButtonItem的方案
        //self.navigationItem.backBarButtonItem = backBarButtonItem 
    } 

    // 3.自定义leftBarButtonItemAction的方法 
    func leftBarButton() { 

        // 3.1.输出 
        println("我是左边的BarButtonItem") 

        // 3.2.回到上一个ViewController      
        self.navigationController?.popViewControllerAnimated(true) 
    } 

// 4.自定义rightBarButtonItemAction的方法 
    func rightButton() { 
        // 4.1.输出 
        println("我是右边的BarButtonItem") 
    } 
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54

4.最终效果

0


项目工程地址: 链接: http://pan.baidu.com/s/1jGtjvoU 密码: jb83

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号