【问题标题】:Swift: How to link UITableView to individual UIDetailView PagesSwift:如何将 UITableView 链接到各个 UIDetailView 页面
【发布时间】:2015-03-09 08:06:13
【问题描述】:

目前我有一个包含大学列表的表格视图。在点击其中之一后,我想显示有关这些大学的信息。我的表格视图单元格有样式:副标题。

我的tableview数据源是:

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

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


override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath)
    -> UITableViewCell {
        let cell = tableView.dequeueReusableCellWithIdentifier("SchoolCell", forIndexPath: indexPath)
            as UITableViewCell

        let school = schools[indexPath.row] as Schools
        cell.textLabel?.text = school.university
        cell.detailTextLabel?.text = school.name
        return cell
}

schools.swift 页面:

class Schools: NSObject {
var university: String
var name: String


init(university: String, name: String) {
    self.university = university
    self.name = name
    super.init()
}
}   

示例数据页:

let schoolsData = [ Schools(university: "Aberdeen", name: "School of Medicine")
//and so on for each university

我已经尝试了几个小时来使用 segues 链接这些页面。我已经通过 ctrl-click 拖动在情节提要上创建了 tableviewcell 和视图控制器之间的链接,但是我的 SchoolsViewTableController(表格视图)和 SchoolViewController 上的代码部分(为 segue 做准备)卡住了。

我希望详细信息页面显示“大学”(例如 Aberdeen)作为标题。

任何帮助将不胜感激 - 我对 swift 比较陌生,所以请理解我的经验不足!

谢谢

埃德

【问题讨论】:

    标签: ios uitableview swift uiviewcontroller segue


    【解决方案1】:

    在我看来,您只需要在用户选择一个单元格然后对详细视图控制器进行转场之间建立连接。

    要实现它,你需要实现 UITableViewDelegate 方法:

    optional func tableView(_ tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)

    (我为您链接的文档)。

    在这种方法中,您将以编程方式调用您的 segue。例如,self.performSegueWithIdentifier("LetsGoToDetailView", sender: self)

    【讨论】:

    • 非常感谢您花时间回复。抱歉,仍然有点困惑 - 我在哪里放置这段代码?我在 SchoolsTableViewController 中的 UITableViewDelegate 中尝试过,但没有运气。
    • 我建议将其放入用作表格视图数据源的同一对象中。此外,请确保您将表视图委托设置为与数据源相同的对象。
    • 我已经将它放在 SampleData.swift 文件中,但我收到 2 条错误消息: - 参数中的无关 '_':'tableView' 没有关键字参数名称 - 使用未声明的类型 'UITableView ' 这可能是因为我可能没有将表视图委托设置为与数据源相同的对象。我该如何检查?
    • 查看您将表格视图连接到数据源的方式和位置。如果以编程方式,您还可以同时分配委托。如果在故事板中,您可以将表视图的委托连接到与数据源连接的同一对象。
    • 我已经通过故事板进行了检查,代表和数据源的出口都是 Schools Table View Controller。因此,我尝试将其放入: optional func tableView(_ tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) 但我仍然不确定它到底在哪里(我尝试了几个地方并收到错误消息)。我在顶部有这段代码的副本 - 你介意指出你认为它应该在哪里吗?感谢您如此耐心-我对此很陌生!
    猜你喜欢
    • 2020-09-26
    • 1970-01-01
    • 2016-04-21
    • 1970-01-01
    • 1970-01-01
    • 2013-12-13
    • 1970-01-01
    • 1970-01-01
    • 2018-10-30
    相关资源
    最近更新 更多