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

0 说明

在本文中,介绍了在xcode的使用tableview的自定义cell,里面还穿插了导航栏的使用,页面的跳转以及本地存储的实现
最后大家可以在下载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, 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 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() {
        
    }
}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值