Наконец, нам потребуется реализовать в делегате метод collectionView: performAction: forItemAtIndexPath: withSender:. С помощью этого метода мы узнаем, было ли вызвано действие копирования, а потом копируем изображение, взятое из ячейки, в буфер обмена. Пользователь сможет вставить из буфера изображение в файл из совершенно другого приложения:
— (void) collectionView:(UICollectionView *)collectionView
performAction:(SEL)action
forItemAtIndexPath:(NSIndexPath *)indexPath
withSender:(id)sender{
if (action == @selector(copy:)){
MyCollectionViewCell *cell = (MyCollectionViewCell *)[collectionView
cellForItemAtIndexPath: indexPath];
[[UIPasteboard generalPasteboard]
setImage: cell.imageViewBackgroundImage.image];
}
}
Теперь, если вы запустите приложение и нажмете один из элементов в сборном виде, а потом будете удерживать на нем палец, то получите примерно такой результат, как на рис. 5.13.
Рис. 5.13. Элемент контекстного меню, отображаемый в ячейке сборного вида
См. также
Раздел 5.5.
Глава 6. Раскадровки
6.0. Введение
Программисты iOS уже привыкли работать с контроллерами видов. Мы умеем пользоваться навигационными контроллерами, чтобы выводить на экран и убирать с него контроллеры видов. Но Apple полагает, что такие задачи можно решать и проще, и поэтому в системе появились раскадровки.
Чтобы воспользоваться преимуществами, которые дает раскадровка, необходимо вплотную познакомиться с конструктором интерфейсов. Не волнуйтесь: обо всем важном рассказано в этой главе.
При работе с раскадровками каждый экран, наполненный значимым содержимым, называется
При раскадровке возможен переход от одной сцены к другой. Применяемый в раскадровке процесс, в ходе которого один контроллер вида ставится выше другого, называется
6.1. Добавление в раскадровку навигационного контроллера
Постановка задачи
Требуется возможность управлять несколькими котроллерами видов в приложении, построенном на основе раскадровки.
Решение
Задайте навигационный контроллер как исходный контроллер вида в файле раскадровки.
Обсуждение
Если вы создали в Xcode новое универсальное приложение, воспользовавшись шаблоном Single View Application (Приложение с единственным видом), то у вас будет два файла раскадровок: Main_iPhone.storyboard и Main_iPad.storyboard. Если просмотреть их в конструкторе интерфейса, то легко заметить, что контроллер вида применяется в них в качестве корневого контроллера. На рис. 6.1 показано содержимое простого готового файла раскадровки для iPhone.
Рис. 6.1. Контроллер вида в качестве корневого элемента файла раскадровки
Чтобы заменить корневой контроллер вида в файле раскадровки на навигационный контроллер, выполните следующие шаги.
1. Выберите контроллер вида на холсте раскадровки.
2. В меню Edit (Правка) выберите команду Embed in (Встроить), а затем Navigation Controller (Навигационный контроллер) (рис. 6.2).
Рис. 6.2. Активизация контроллера вида в навигационном контроллере