0 说明
最后大家可以在下载demo
http://download.csdn.net/detail/wtt561111/9171107
1因为涉及到导航栏的使用,所以需要现在修改appDelegate文件。如图,添加下面的三行代码
2下面创建自己的cell,新建一个swift文件,命名为TableViewCell
import UIKit class ViewController: UIViewController,UITableViewDataSource,UITableViewDelegate { var table:UITableView! var array = ["item1","item2","item3","item4","item5","item6","item7"] override func viewDidLoad() { super.viewDidLoad() title = "FirstApp" var view: UIView = UIView(frame: self.view.frame) view.backgroundColor = UIColor.whiteColor() self.view.addSubview(view) var leftButton:UIBarButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Edit,target: self,action:"leftCall:") self.navigationItem.leftBarButtonItem = leftButton var rightButton:UIBarButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Add,action: "rightCall:") self.navigationItem.rightBarButtonItem = rightButton var rect = self.view.frame rect.origin.y += 65 table = UITableView(frame: rect) table.registerClass(TableViewCell.self,forCellReuseIdentifier: "cell") self.view.addSubview(table) table.delegate = self table.dataSource = self } func numberOfSectionsInTableView(tableView: UITableView) -> Int { return 1 } func tableView(tableView: UITableView,heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { return 60 } func tableView(tableView: UITableView,numberOfRowsInSection section: Int) -> Int { return array.count } func tableView(tableView: UITableView,cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { var str:String = "cell" var cell:TableViewCell = tableView.dequeueReusableCellWithIdentifier(str,forIndexPath: indexPath) as! TableViewCell if cell.isEqual(nil) { cell = TableViewCell(style: UITableViewCellStyle.Default,reuseIdentifier: str) } cell.title.text = array[indexPath.row] cell.clickBtn.tag = indexPath.row cell.clickBtn.removeTarget(self,action: "tableViewCellClicked:",forControlEvents: UIControlEvents.TouchUpInside) cell.clickBtn.addTarget(self,forControlEvents: UIControlEvents.TouchUpInside) return cell } func tableView(tableView: UITableView,commitEditingStyle editingStyle: UITableViewCellEditingStyle,forRowAtIndexPath indexPath: NSIndexPath) { if editingStyle == UITableViewCellEditingStyle.Delete { array.removeAtIndex(indexPath.row) table.reloadData() } } func tableView(tableView: UITableView,didSelectRowAtIndexPath indexPath: NSIndexPath) { println("clicked at \(indexPath.row)") } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } func leftCall(sender:AnyObject) { table.setEditing(!table.editing,animated: true) var btn:UIBarButtonItem = sender as! UIBarButtonItem btn.title = "Done" println("leftButton pressed") } func rightCall(sender:AnyObject) { array.append("新建cell") table.reloadData() println("rightButton pressed") var myPara1="this is my para1"; NSUserDefaults.standardUserDefaults().setValue(myPara1,forKey: "para1"); var myPara2="this is my para2"; NSUserDefaults.standardUserDefaults().setValue(myPara2,forKey: "para2"); NSUserDefaults.standardUserDefaults().synchronize(); self.navigationController?.pushViewController(PushTest(),animated: true) } func tableViewCellClicked(sender:AnyObject) { println("tableViewCell appButton at \((sender as! UIButton).tag) clicked") } }
3因为还要考虑到界面的跳转,需要新建swift文件 PushTest
// // PushTest.swift // TableViewWithMyselfCell // // Created by wangtuntun on 15/10/10. // Copyright (c) 2015年 wangtuntun. All rights reserved. // import Foundation import UIKit class PushTest:UIViewController{ override func viewDidLoad() { println("this is push test"); var para1Get:String = NSUserDefaults.standardUserDefaults().valueForKey("para1") as! String; var para2Get:String = NSUserDefaults.standardUserDefaults().valueForKey("para2") as! String; println(para1Get); println(para2Get); } override func didReceiveMemoryWarning() { } }