使用Array Value Swift3从UITableViewController到UIViewController执行Segue

时间:2017-02-27 11:41:35

标签: ios swift3 segue xcode8

我正在努力掌握segues并创建了简单的视图控制器,第一个是使用以下类的简单TableViewController

import UIKit

class CourseTVC: UITableViewController {

    var courseVenue = ["Cardiff", "Swansea", "Rhyl", "Bangor"]

    var courseDate = ["27th February 2017", "9th March 2017", "17th March 2017", "23rd March 2017"]

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }

    override func numberOfSections(in tableView: UITableView) -> Int {
        return 1
    }

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return courseVenue.count
    }

    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "courseCell", for: indexPath)
        cell.textLabel?.text = courseVenue[indexPath.row]
        cell.detailTextLabel?.text = courseDate[indexPath.row]
        return cell
    }

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if segue.identifier == "showMapDeail" {
            let destinationController = segue.destination as! CourseMapVC
            if let indexPath = tableView.indexPathForSelectedRow {
                destinationController.courseTitle = courseVenue[indexPath.row]


            }
        }
    }
}

我使用简单的脚本数组来填充单元格数据。这很好用,我想将选定的行标题传递给第二个ViewController,只显示场地标题。第二个视图控制器打开(segue在故事板上命名为showMapDetail,是show segue)但没有显示场地标题。因此,第二个视图控制器的类是

import UIKit

class CourseMapVC: UIViewController {

    @IBOutlet weak var venueTitle: UILabel!

    var courseTitle: String = ""

    override func viewDidLoad() {
        super.viewDidLoad()

        venueTitle.text = courseTitle
    } 
}

没有错误,没有传递数据或传递了nil值。似乎有线索我可以进一步询问,所以任何指针都很受欢迎。

感谢。

1 个答案:

答案 0 :(得分:0)

抱歉,伙计们,我发布这个时就注意到了segue标识符中的拼写错误。

非常感谢。