0
我有一個ViewController,帶有一個子文件中的數據列表。這個頁面運行完美。在這個頁面上有許多酒吧的價格。我想製作另一個場景(SecondViewController)。每次當我從列表中推一家酒吧時,我想在另一個場景上展示更多關於那個地方的信息。運行,但是當我選擇一家酒吧時,節目會顯示列表中第一家酒吧的信息,而當我選擇另一家時,他會顯示之前選擇的酒吧。對不起,我的英語非常糟糕。請大家幫幫我:dTableView Cell actions
這裏是我的ViewController:
import UIKit
var nev: [String] = []
var cim: [String] = []
var ar: [String] = []
class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
var myIndex: Int?
@IBOutlet weak var tableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
let url = Bundle.main.url(forResource: "pubok", withExtension: "json")
do {
let allContactsData = try Data(contentsOf: url!)
let allContacts = try JSONSerialization.jsonObject(with: allContactsData, options: JSONSerialization.ReadingOptions.allowFragments) as! [String : AnyObject]
if let arrJSON = allContacts["Pubok"] {
for index in 0...arrJSON.count-1 {
let aObject = arrJSON[index] as! [String : AnyObject]
nev.append(aObject["Hely neve"] as! String)
cim.append(aObject["Cím"] as! String)
ar.append(aObject["Legolcsóbb sör"] as! String)
}
}
self.tableView.reloadData()
}
catch {
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return nev.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell{
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! TableViewCell
cell.nevLabel.text = nev[indexPath.row]
cell.arLabel.text = ar[indexPath.row] + "/0.5l"
return cell
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
myIndex = indexPath.row
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let vc = segue.destination as! SecondViewController
vc.myIndex = myIndex
}
}
這裏是我的SecondViewController:
import UIKit
class SecondViewController: UIViewController {
myIndex: Int?
@IBOutlet weak var secondnevLabel: UILabel!
@IBOutlet weak var secondcimLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
secondnevLabel.text = nev[myIndex!]
secondcimLabel.text = cim[myIndex!]
}
}
這是TableViewCell:
import UIKit
class TableViewCell: UITableViewCell {
@IBOutlet weak var nevLabel: UILabel!
@IBOutlet weak var arLabel: UILabel!
override func awakeFromNib() {
super.awakeFromNib()
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
}
}
在視圖控制器通過vc.myIndex = myIndex我有一個錯誤:使用未解析的標識符的 'myIndex' –
現在我有:致命錯誤:意外地發現零,同時展開一個可選值。我不明白什麼是錯的:( –
在SecondViewController中:secondnevLabel.text = new [myIndex!]是錯誤 –