Swift3 如何将特定的用户标识与特定的表视图单元格相关联?
我正在创建一个应用程序,它有一个用户的表视图,我正在使用JSON下拉它。表视图填充了我想要的所有信息,但我只是在做基本信息。我想做的是,用户将单击一个表视图单元格,它将把他们带到另一个视图控制器,在该视图控制器中将有一个更详细的纵断面图。在我的JSON中,当表视图开始加载时,我获得了所有的用户信息,比如UserID等等,我希望将该用户ID与每个单独的表单元格相关联,这样当单击它们时,我可以在下一个窗口中运行php脚本,以显示该表中用户的配置文件。我通常这样做的方式是首先将JSON映射到模型对象,并使用表数据源中的这些模型对象填充表视图。点击单元格时,我会进行反向映射(从单元格到模型对象),并可以将模型对象(或模型对象信息的子集)转发到Swift3 如何将特定的用户标识与特定的表视图单元格相关联?,swift3,xcode8,Swift3,Xcode8,我正在创建一个应用程序,它有一个用户的表视图,我正在使用JSON下拉它。表视图填充了我想要的所有信息,但我只是在做基本信息。我想做的是,用户将单击一个表视图单元格,它将把他们带到另一个视图控制器,在该视图控制器中将有一个更详细的纵断面图。在我的JSON中,当表视图开始加载时,我获得了所有的用户信息,比如UserID等等,我希望将该用户ID与每个单独的表单元格相关联,这样当单击它们时,我可以在下一个窗口中运行php脚本,以显示该表中用户的配置文件。我通常这样做的方式是首先将JSON映射到模型对象,
prepare(for:sender:)
中的下一个视图控制器。为了实现这一点,我在Interface Builder中设置了单元格,以便在选择时触发到details view控制器的序列
示例代码:
struct User
{
let id: String
let name: String
// etc.
}
class YourTableViewController: UITableViewController
{
var users: [User] = []
override func viewDidLoad() {
super.viewDidLoad()
let json = getJSON()
users = createUsers(from: json)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
// Check segue.identifier, left out for brevity.
let destination = segue.destination as! YourDetailsViewController
let cell = sender as! UITableViewCell
let indexPath = tableView.indexPath(for: cell)!
let user = users[indexPath.row]
destination.user = user
}
// ... other funcs for table view ...
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let user = users[indexPath.row]
// dequeue cell, set up with info from user, return it
}
}