Пожалуйста, несите меня, поскольку я новичок в быстром. Я пытаюсь создать коллекцию из 10 ресторанов в городе Нью-Йорк. Когда пользователь нажимает на ресторан (ячейка, содержащая изображение ресторана), я хочу, чтобы новый диспетчер представлений коллекции появился с коллекционным представлением меню ресторанов.Collection View Выбор ячейки с помощью swift
Я хочу, чтобы иметь возможность использовать один контроллер просмотра коллекции, чтобы показать меню, в котором каждый ресторан имеет, когда пользователь нажимает на ресторан (ячейка).
Я использую одну прототипную ячейку для заполнения всех 10 ресторанов. Моя трудность заключается в том, как заставить каждую ячейку отобразить этот контроллер представления коллекции меню с набором меню для выбранного ресторана. Контроллер представления коллекции меню отобразит изображение пищи, имя и цену (почти так же, как Instacart показывает продукты, когда вы выбираете магазин. На данный момент я могу только нажать любую ячейку, и появится такое же меню.
Это мой ресторан коллекция просмотр списка контроллер. DidSelect, что было прокомментировано было меня пытаются получить клетки, которые будут отобраны на основе их индекса пути.
import UIKit
private let reuseIdentifier = "ManhattanCell"
class ManhattanCollectionViewController: UICollectionViewController {
var yourRest = [String]()
override func viewDidLoad() {
super.viewDidLoad()
yourRest = ["RestAwash",
"RestZoma",
"RestLeBaobab",
"RestSokhna",
"RestCoumba",
"RestMassawa",
"RestLesAmbassades",
"RestPonti",
"RestBraai",
"RestNewIvoire"]
}
override func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int {
// #warning Incomplete implementation, return the number of sections
return 1
}
override func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
// #warning Incomplete implementation, return the number of items
return yourRest.count
}
override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCellWithReuseIdentifier(reuseIdentifier, forIndexPath: indexPath) as! RestaurantCollectionViewCell
// Configure the cell
let image = UIImage(named: yourRest[indexPath.row])
cell.manhattanImageView.image = image
return cell
}
/* override func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
if indexPath.row == 0 {
// call your alert here
self.performSegueWithIdentifier("awashShowDetail", sender: self)
} else if indexPath.row == 1 {
self.performSegueWithIdentifier("testView", sender: self)
}
}
*/
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
let sideSize = collectionView.frame.size.width/2.51;
return CGSize(width: sideSize, height: sideSize);
}
}
Ниже мой RestaurantCollectionViewCell
import UIKit
class RestaurantCollectionViewCell: UICollectionViewCell {
@IBOutlet weak var manhattanImageView: UIImageView!
}
Мой выпуск e, похоже, немного похоже на этот вопрос. Я последовал за ответом, и я все еще не могу заставить его работать.
Swift: UICollectionView selecting cell indexPath issues
Спасибо.
Как вы отображения ячеек в разных перетекает? –
У меня только одна ячейка прототипа, которую я перечислил в MenuCollectionViewController. Или мне нужно создать 10 разных ячеек для каждого имени ресторана, а затем перечислить каждого в MenuCollectionViewController, чтобы отобразить меню для каждого ресторана? – dechairman
Это зависит от того, что вы хотите. Если каждая коллекция меню будет выглядеть по-другому, вам нужно будет создать настраиваемый контроллер представлений для каждого из них. Если вы можете придумать способ обмена данными «на лету» для каждой коллекции меню, вам понадобится только один контроллер вида. –