21.UINavigationController和UINavigationBar的使用小技巧

在许多应用中, 我们最常用到的控件之一就是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)

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 
}

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") 
    } 
}

4.最终效果

0


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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值