Я хочу передать данные. Вид на B, он может создавать и отображать данные в представлении A, но после того, как я выбрал ячейке, он разбился. И это показывает проблему с кодом.Swift 3 передают данные ячейки. Вид на B, с удовольствием сделалSelectRowAt indexPath сбой после выбора строки
vcTwo.selectedzones.zones = [selectedCity]
fatal error: unexpectedly found nil while unwrapping an Optional value (lldb)
мой код
Режим структура:
struct Location {
var city: String!
var zones = [String]()
}
var city = ["KHT", "TPAP", "TNNY"]
let kh = Location.init(city: "KHT", zones: ["sami", "zami", "zomi", "komi", "shini"])
let tpa = Location.init(city: "TPAP", zones: ["mid", "east", "anci", "zochi"])
let tnn = Location.init(city: "TNNY", zones: ["TN1","TN2", "TN3", "TN4", "TN5"])
Вот код ViewController:
import UIKit
class FirstViewTableViewController: UITableViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
// MARK: - Table view data source
override func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return city.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! FirstCell
cell.firstLabel.text = city[indexPath.row]
return cell
}
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let selectedCity = city[indexPath.row]
let vcTwo = self.storyboard?.instantiateViewController(withIdentifier: "secondVC") as! secondViewController
vcTwo.selectedzones.zones = [selectedCity]
self.navigationController?.pushViewController(vcTwo, animated: true)
}
}
Б ViewController:
import UIKit
class secondViewController: UITableViewController {
var selectedzones: Location!
override func viewDidLoad() {
super.viewDidLoad()
}
override func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return selectedzones.zones.count
}
Есть ли какая-либо часть неправильно в FUNC didSelectRowAt indexPath?
спасибо !! Он не будет сбой теперь ~, но все еще не может передать данные в Bview, после того как я выбрал строку. Он делает что-нибудь. no crash no switch to next Вид –
Включите местоположение в первом контроллере с полными данными. он пройдет мимо – junaidsidhu
извините, я так новичок в программировании !!! вы имеете в виду «var location = [Location]()» над func viewDidLoad() в первом представлении? или все мое местоположение Struct –