У меня есть коллекция элементов, которые я в настоящее время помещаю в меню, пока я работаю над планированием макета, но у меня возникают проблемы с выяснением, как работать с DidSelectRow с indexPath.row -
У меня есть следующий код:
import UIKit
class DispatchViewController: UIViewController {
@IBOutlet weak var tableView: UITableView!
var videos: [DispatchMenuItem] = []
override func viewDidLoad() {
super.viewDidLoad()
videos = createArray()
self.tableView.rowHeight = 65.0
tableView.dataSource = self
}
func createArray() -> [DispatchMenuItem] {
let video1 = DispatchMenuItem(image: #imageLiteral(resourceName: "truckUnloadIcon"), title: "Open Manifests")
let video2 = DispatchMenuItem(image: #imageLiteral(resourceName: "podIcon"), title: "Customer Pickup")
return [video1, video2]
}
}
extension DispatchViewController: UITableViewDataSource, UITableViewDelegate {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return videos.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let video = videos[indexPath.row]
let cell = tableView.dequeueReusableCell(withIdentifier: "DispatchMenuItemCell") as! DispatchMenuItemCell
cell.setVideo(video: video)
return cell
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
print(indexPath.row)
print(indexPath)
if indexPath.row == 1{
self.performSegue(withIdentifier: "goToOpenManifests", sender: nil)
}else if indexPath.row == 2{
self.performSegue(withIdentifier: "goToCustomerPickupForm", sender: nil)
}
}
}
Вы можете видеть внизу мой DidSelectRow
, но он не хочет распечатывать indexPath.row, поэтому я предполагаю, что выбранная строка каким-то образом теперь проходит через расширение.
Есть какие-нибудь предложения? Я обычно делал это только с помощью UITableViewController и никогда не сталкивался с этой проблемой, но где-то здесь я застреваю.