2014-10-28 4 views
1

Я новичок в разработке Swift и iOS. Я пытаюсь создать демонстрационное приложение, которое просто показывает детали элемента в новой сцене при нажатии. Я попытался использовать Storyboard, но я узнал, что нельзя создавать segues непосредственно из ячеек в раскадровке, потому что CollectionView динамически заполняется через источник данных.Segue в UICollectoinView с использованием Xcode 6

Поэтому я попытался использовать performSegueWithIdentifier:sender, но щелчок по элементу ничего не вызывает. Я установил идентификатор для Segue в раскадровке. Я не могу понять, что случилось (поскольку я довольно новичок и не понимаю весь поток).

Мой первый класс myFirstViewController.swift и второй является mySecondViewController.swift Пожалуйста, помогите (Где я должен поставить prepareForSegue, performSegue функция?) Я использую Xcode 6 на OS X Yosemite.

ответ

0

Ваш класс myFirstViewController должен реализовать протокол UICollectionViewDelegate.

В интерфейсеBuilder создать segue для вашего второго viewController путем ctrl-перетаскивания из viewController1 значок ко второму viewController. Дайте этому имени имя идентификатора в инспекторе свойств.

В myFirstViewController.swift, внесите collectionView(_:didSelectItemAtIndexPath:), там вы можете позвонить performSegueWithIdentifier с именем вашего идентификатора segue.

0

Вы можете переходить непосредственно из ячейки в раскадровке. Просто щелкните правой кнопкой мыши и перетащите из ячейки в раскадровке контроллер подробного представления, который вы хотите активировать.

Если вы действительно не хотите этого делать. Тогда еще один вариант - щелкнуть правой кнопкой мыши и перетащить с основного контроллера представления на контроллер подробного представления, чтобы создать общий сеанс. Затем назовите segue. После этого вы можете вызвать выполнение segue в вашем методе collectionView(collectionView, didSelectItemAtIndexPath). (Убедитесь, что вы подключили контроллер вида к вашему коллекционному представлению в качестве делегата для вызова этого метода.)

В любом случае вам необходимо написать метод prepareForSegue(segue, sender) в вашем основном контроллере представления, чтобы передать выбранный элемент в детали просмотрите контроллер.

Удачи вам в новом приключении!

Смежные вопросы