tableview使用自定义类,页面跳转,本地存储

来源:互联网 发布:驱动管理软件 知乎 编辑:程序博客网 时间:2024/06/13 12:41

0 说明

在本文中,介绍了在xcode的使用tableview的自定义cell,里面还穿插了导航栏的使用,页面的跳转以及本地存储的实现
最后大家可以在下载demo
http://download.csdn.net/detail/wtt561111/9171107

1因为涉及到导航栏的使用,所以需要现在修改appDelegate文件。如图,添加下面的三行代码



2下面创建自己的cell,新建一个swift文件,命名为TableViewCell

import UIKitclass 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, target: self, 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, action: "tableViewCellClicked:", 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 Foundationimport UIKitclass 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() {            }}




0 0
原创粉丝点击