您的位置:首页 > 移动开发 > Swift

ios TableView那些事3(Swift 三) TableView 的删除操作

2014-12-01 00:37 531 查看
删除tableview 通常 手势滑动删除 和导航放个管理删除按钮 下面实现的就是这两种方法

import UIKit

class ViewController: UITableViewController {

   var dataScoure = ["one","hello","miss","ios","good"]

    

   var barButtonItem:UIBarButtonItem?;

    

    override func viewDidLoad() {

        super.viewDidLoad()

        

        setRightDeleteButtonItem()

        // Do any additional setup after loading the view, typically from a nib.

    }

    

    //设置导航右边管理按钮

    func setRightDeleteButtonItem(){

        

       

        barButtonItem = UIBarButtonItem(title:"管理", style: .Done, target: self, action: "RightButtonItemAction")

        barButtonItem!.tag = 10;

        self.navigationItem.rightBarButtonItem = barButtonItem

    }

    

    func RightButtonItemAction(){

        

        if barButtonItem?.tag == 10{

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

            barButtonItem!.title = "删除"

            barButtonItem!.tag = 20;

        }

        else{

            

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

            barButtonItem!.title = "管理"

            barButtonItem!.tag = 20;

        }

     

    }

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

     

        return 1;

    }

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

    

       return dataScoure.count;

    }

    

 

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

    

    let cell:UITableViewCell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "cell")

       cell.textLabel.text = dataScoure[indexPath.row];

    return cell;

    

    }

    

      //删除函数

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

    

        //删除数据源的对应数据

        dataScoure.removeAtIndex(indexPath.row)

    

        //删除对应的cell

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

    

       //数据源为空的时候管理按钮不能删除

       if self.dataScoure.count == 0{

          barButtonItem?.enabled = false;

       }

    

    }

    //把delete 该成中文

    override func tableView(tableView: UITableView, titleForDeleteConfirmationButtonForRowAtIndexPath indexPath: NSIndexPath) -> String! {

        

        return "删除"

    }

    override func didReceiveMemoryWarning() {

        super.didReceiveMemoryWarning()

        // Dispose of any resources that can be recreated.

    }

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  swift
相关文章推荐