2016-03-03 3 views
0

Я использую представление коллекции, чтобы отобразить сетку ячеек представления пользовательских коллекций, чтобы представлять значки категорий, которые будут функционировать как кнопки для перехода к контроллеру табличного представления для отображения списков категорий. Я использую массив «продукты» (этикетки) и «изображение» (изображения продуктов) для отображения нескольких пользовательских ячеек на основе от прототипа в качестве такогоSegueing пользовательских ячеек просмотра для настраиваемого контроллера представления

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { 



    let cell = collectionView.dequeueReusableCellWithReuseIdentifier("cell", forIndexPath: indexPath) as! CollectionViewCell 

    cell.imageView?.image = self.images[indexPath.row] 

    cell.labelView?.text = self.products[indexPath.row] 

    return cell 
} 

Как бы иметь возможность непосредственно перейти мою домашнюю страницу просмотреть контроллер на один пользовательский контроллер табличного представления для отображения разных категорий в зависимости от того, какой значок был выбран? Любая помощь приветствуется, все еще привыкая к xcode и swift.

+0

Мне нужно уточнение. Вы спрашиваете, как переходить от одного ВК к другому? Или спрашиваете, как переходить на разные VC в зависимости от выбранной ячейки? Или как сортировать выделение ячейки? – PeejWeej

+0

Сегмент для разных VC в зависимости от того, какая ячейка выбрана, ближе всего к тому, что я получаю. Я хочу, чтобы каждая ячейка была выбрана для отображения списков категорий (это основное приложение для торговли для HW) таким же образом в виде таблицы. Я надеялся, что смогу создать прототип таблицы представления таблицы с изображением слева, а описание как ярлык в центре каждого «перечисления» выбранной ячейки категории. – rws

ответ

0

Если я правильно вас понимаю, вы можете использовать один и тот же дочерний UITableViewController и передавать ему разные данные в зависимости от выбранной ячейки.

Первый в CollectionViewController реализации

override func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) 

Затем выполнить переход с данными

performSegue("identifier", sender: self.products[indexPath.row]) 
+0

Мой следующий вопрос: как назначить объект, содержащий массив UIImage (изображения списков) и массив строк (описание списков), на которые выбран выбранный значок. Будет ли этот объект отправителем в методе performSegue? – rws

+0

Возможно, я мог бы использовать ряд операторов case, чтобы определить, какие данные будут отображаться в контроллере tableview после нажатия на значок с определенным индексом в главном контроллере представления? – rws

+0

В идеале вы должны хранить данные в массиве, индексированные теми же индексами, которые вы используете для массивов text/image, а не только передавать необходимые данные вашему следующему ViewController – PeejWeej

0

Первый контроллер вид должен соответствовать UICollectionViewDelegate, то вы должны реализовать этот метод делегата, чтобы выполнить отбирается, когда ячейка выбрана:

func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) { 
    performSegueWithIdentifier("identifier", sender: nil) 
} 

Затем проверьте, совпадает ли идентификатор segue, получите indexPath выбранной ячейки, постройте кортеж выбранного продукта и изображения и, наконец, передайте его в пункт назначения tableViewController.

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    if segue.identifier == "identifier" { 
     let indexPath = collectionView.indexPathsForSelectedItems()!.first! 
     let selectedProduct = (product: products[indexPath.row], image: images[indexPath.row]) 
     let controller = segue.destinationViewController as! YourTableViewController 
     controller.product = selectedProduct 
    } 
} 
Смежные вопросы