Swift UITableView获取选定的表项

时间:2015-08-21 14:30:33

标签: swift uitableview

我打算在一个ViewController中连接两个UITableView,两个不同的类具有不同的数据,然后选择该项,但我无法使其工作

AppController.swift

class AppController:UIViewController {

@IBOutlet weak var projects_TableView: UITableView!  
@IBOutlet weak var hours_TableView: UITableView!

var projects_DataSource: TableViewProjects?
var hours_DataSource: TableViewHours?

override func viewDidLoad() {
    super.viewDidLoad()

    projects_DataSource = TableViewProjects()
    hours_DataSource = TableViewHours()
    projects_TableView.dataSource = projects_DataSource
    hours_TableView.dataSource = hours_DataSource

    println("Table Sources Success")
}


func TableProjectsSelected() {
    println("Selected Project Table")

    self.performSegueWithIdentifier("projectTable", sender: AnyObject?())
}

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        if segue.identifier == "projectTable" {
            //do stuff
            println("projectTable ID")
        }
    }

TableViewProjects.swift

var items: [String] = ["Project 1", "Project 2", "Project 3"]

override init() {
    super.init()
}


//TABLE FUNCTIONS
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
    return items.count
}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
    let cell:UITableViewCell=UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: "projectcell")

    cell.textLabel!.text = items[indexPath.row]

    return cell
}

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

    println("Select From Class")

    let storyboard = UIStoryboard(name: "Main", bundle: nil)
    let appController: AppController = storyboard.instantiateViewControllerWithIdentifier("SelectProjectAndHour") as! AppController

    appController.TableProjectsSelected()

}

我无法从TableViewProjects.swift

中选择的项目获得响应

1 个答案:

答案 0 :(得分:0)

也许您应该在下面添加以下代码:

projects_TableView.delegate = projects_DataSource
hours_TableView.delegate = hours_DataSource