swift TableView委托和数据源类示例

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swift TableView委托和数据源类示例相关的知识,希望对你有一定的参考价值。

import Foundation
import UIKit

class TableViewController : UIViewController, UITableViewDelegate, UITableViewDataSource
{
    var CLASS_TAG="TableViewController"

    @IBOutlet weak var tableView: UITableView!
    var exercises: NSMutableArray = []
    
    override func viewDidLoad()
    {
        super.viewDidLoad()
        NSLog(CLASS_TAG+": viewDidLoad()")
        self.tableView.delegate=self
        self.tableView.dataSource = self
    }
    
    func numberOfSectionsInTableView(tableView: UITableView) -> Int
    {
        return 1
    }
    
    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
    {
        NSLog("Count: "+String(exercises.count))
        return exercises.count
    }
    
    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
    {
        NSLog("Table entry")
        
        let cell = self.tableView.dequeueReusableCellWithIdentifier("ExerciseCell", forIndexPath: indexPath) as! ExerciseCell
        let row = indexPath.row
        let entry = exercises.objectAtIndex(row) as! Exercise
        NSLog(entry.getName())
        cell.tvExercise.text = entry.getName()
        cell.tvInfo.text=String(entry.getSeries())+" sets - "+String(entry.getTime())+" seconds"
        return cell
    }
    
    func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)
    {
        NSLog("On click")
        let exercise=exercises.objectAtIndex(indexPath.row) as! Exercise
        NSLog(exercise.getName())
        let storyboard = UIStoryboard(name: "Main", bundle: nil)
        let vc = storyboard.instantiateViewControllerWithIdentifier("ExerciseController") as! ExerciseController
        vc.exercise=exercise
        self.presentViewController(vc, animated: true, completion: nil)
    }
}

/*
import Foundation
import UIKit

class ItemCell : UITableViewCell
{
    @IBOutlet weak var tvItem: UILabel!
    @IBOutlet weak var imgItem: UIImageView!
}
*/

以上是关于swift TableView委托和数据源类示例的主要内容,如果未能解决你的问题,请参考以下文章

Swift-使用委托在 tableView 上显示

如何使用不同的委托和数据源方法在一个类中实现两个Tableview?

Swift 4:没有调用 didSelectRowAt 委托

从 tableView 委托类中调用视图控制器 segue

在 tableview 上调用 selectRowAtIndexPath 时出现 Swift 错误

在swift中使用tableView自动填充代理方法的最佳方法?