21.UINavigationController和UINavigationBar的使用小技巧

来源:互联网 发布:淘宝助理设置快递模板 编辑:程序博客网 时间:2024/06/01 09:22

在许多应用中, 我们最常用到的控件之一就是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
原创粉丝点击