我对斯威夫特几乎是新手。In this URL我会得到一些元素;其中一个元素是categoryList,它本身有两个元素。我将goodTypeName设置为表的单元格标题,当按下单元格时,它需要发送goodType number(Int)以放置在下一个Url中。我试着编一本字典,但失败了!
适用代码:::
override func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return Global.GlobalVariable.names.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if Global.GlobalVariable.names == []
{
self.DisplayMessage(UserMessage: "nothing is available ")
print("server is nil")
}
let cell = UITableViewCell()
let content = Global.GlobalVariable.names[indexPath.row]
cell.textLabel?.text = content
cell.accessoryType = .disclosureIndicator
return cell
}
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
print(indexPath.item)
let next = self.storyboard?.instantiateViewController(withIdentifier: "SVC")
self.navigationController?.pushViewController(next!, animated: true)
}
我的问题不是在表中填充它们,我的问题是当选择一个单元格时,goodtype需要发送到下一页,因为下一页的url必须有goodtype代码。
最佳答案
您可以使用“prepareSegue”传递数据。
重写func prepare(用于segue:UIStoryboardSegue,sender:Any?){
if segue.identifier == "something"{
if let startViewController = segue.destination as? StartViewController{
startViewController.goodtype = Global.GlobalVariable.goodtype[indexPath.row]
}
}
}
在StartViewController中,只需分配一个变量来接收数据:
var goodtype = String()
或者使用导航控制器,但使用此行可以访问另一个视图控制器属性。
if let startViewController = storyboard.instantiateViewController(withIdentifier: "StartViewController") as? StartViewController {
startViewController.goodtype = Global.GlobalVariable.goodtype[indexPath.row]
let navigationController = UINavigationController()
navigationController.pushViewController(startViewController, animated: true)
}