swift navigation item怎么切换

swift navigation item怎么切换,第1张

我们以设置右侧按钮为例,左侧方法类似

方法一,直接自定义文字

[objc] view plain copy

let item=UIBarButtonItem(title: "分享", style: UIBarButtonItemStyle.Plain, target: self, action: nil)

self.navigationItem.rightBarButtonItem=item

方法二,使用系统图标

[objc] view plain copy

let item1=UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Done, target: self, action: nil)//此处使用的图标UIBarButtonSystemItem是一个枚举.大家可以尝试一下其他值出来是什么

self.navigationItem.rightBarButtonItem=item1

方法三,使用自定义控件

这里我们自定义button为例来实现

[objc] view plain copy

let btn1=UIButton(frame: CGRectMake(0, 0, 50, 30))

btn1.setTitle("完成", forState: UIControlState.Normal)

let item2=UIBarButtonItem(customView: btn1)

self.navigationItem.rightBarButtonItem=item2

Xcode6新建一个项目,采用swift创建代码:

创建一个ViewController继承UITableViewController

涉及了模型,控制器

模型:ZLPlace.swift

class ZLPlace: NSObject {  

var place = ""  

var visited = false  

}

tableViewController 控制器

import UIKit  

 

class ViewController: UITableViewController {  

      

    // 静态数据数组,存放模型  

    var arrs = [ZLPlace]()  

      

    override func viewDidLoad() {  

        super.viewDidLoad()  

          

        let place2 = ZLPlace()  

        place2.place = "zhang2"  

        arrs.append(place2)  

          

        let place3 = ZLPlace()  

        place3.place = "zhang3"  

        arrs.append(place3)  

          

        let place4 = ZLPlace()  

        place4.place = "zhang1"  

        arrs.append(place4)  

          

        self.tableView.reloadData()  

    }  

      

    // 数据源方法, 返回多少组  

    override func numberOfSectionsInTableView(tableView: UITableView) ->Int {  

        return 1 

    }  

      

    // 每组有多少行  

    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) ->Int {  

        return arrs.count 

    }  

      

    // 每行展示什么内容  

    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) ->UITableViewCell {  

        let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as UITableViewCell  

          

        let place = arrs[indexPath.row]  

          

        cell.textLabel.text = place.place  

          

        return cell 

          

    }  

      

    // 点击每个cell触发什么事件  

    override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {  

          

        let place = arrs[indexPath.row]  

        place.visited = !place.visited 

          

        let cell = tableView.cellForRowAtIndexPath(indexPath)  

        cell?.backgroundColor = UIColor.clearColor()  

        if(place.visited){  

            cell?.accessoryType = UITableViewCellAccessoryType.Checkmark  

        }else{  

            cell?.accessoryType = UITableViewCellAccessoryType.None  

        }  

    }  

      

    // 点击编辑按钮  

    @IBAction func editing(sender: AnyObject) {  

        self.tableView.setEditing(true, animated: true)  

    }  

      

    // 删除每个cell  

    override func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {  

        if editingStyle == UITableViewCellEditingStyle.Delete{  

            arrs.removeAtIndex(indexPath.row)  

            tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Top)  

        }  

    }  

      

}

效果如图:

iOS15:比较简单了(苹果为啥到了iOS15才想起来按钮还需要这个功能呢)。Button新增UIButton.Configuration用来配置

iOS15之前,需要extension UIButton

使用:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11521755.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存