Индекс выбранной строки в разделе - PullRequest
0 голосов
/ 24 мая 2018

У меня есть продукты, разделенные по разделам, и я хочу нажать на продукт и перейти на страницу с описанием продуктов.Моя проблема в том, что я не могу передать информацию в детали, потому что я не получаю индекс предмета в разделе.FoodItem из coredata.

 var allFoodItems = [[FoodItem]]()
 var foodItemTypes = [
FoodItemType.Appetizer.rawValue,
FoodItemType.SoupSalad.rawValue,
FoodItemType.Main.rawValue]

 override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

    let foodItem = FoodItem()
    guard let section = foodItemTypes.index(of: foodItem.type!) else { return }

    let row = allFoodItems[section].count

    let selectedIndexPath = IndexPath(row: row, section: section)

    let foodItemDetailController = FoodItemDetailController()
    foodItemDetailController.foodItem = selectedIndexPath
    navigationController?.pushViewController(foodItemDetailController, animated: true)
}

enter image description here

1 Ответ

0 голосов
/ 24 мая 2018

Вам нужно только отправить indexPath напрямую

 override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

    let foodItemDetailController = FoodItemDetailController()

    foodItemDetailController.foodItem = indexPath   // if  IndexPath is the type 

    navigationController?.pushViewController(foodItemDetailController, animated: true)
}

//

Или отправить элемент нажатием

 override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

    let all = allFoodItems[indexPath.section]

    let item = all[indexPath.row]

    let foodItemDetailController = FoodItemDetailController()

    foodItemDetailController.foodItem = item // if foodItem is the type

    navigationController?.pushViewController(foodItemDetailController, animated: true)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...