Swift Present Popover View из UIButton

Вопрос

Привет. Как в Swift представить всплывающее окно из UIButton, созданного раскадровкой, чтобы получить фотографии из библиотеки фотографий? Я разобрался с библиотекой фотографий, но не с представлением контроллера представления.

Исследования

Я нашел инструкции о том, как сделать подобную вещь из BarButtonItem примерно на полпути вниз здесь.

Текущие попытки

Я пытаюсь использовать следующий код.

self.imagePicker.delegate = self
self.imagePicker.sourceType = UIImagePickerControllerSourceType.SavedPhotosAlbum;
self.imagePicker.allowsEditing = false
            
self.imagePicker.modalPresentationStyle = .Popover
presentViewController(self.imagePicker, animated: true, completion: nil)//4
self.imagePicker.popoverPresentationController?.photo = sender

где photo является UIButton, из которого я хочу представить это модальное представление. Для простоты даны только части кода, связанные с представлением представления.

я тоже пробовал

self.imagePicker.delegate = self
            self.imagePicker.sourceType = UIImagePickerControllerSourceType.SavedPhotosAlbum;
            self.imagePicker.allowsEditing = false
            
            self.imagePicker.modalPresentationStyle = .Popover
            self.imagePicker.popoverPresentationController!.sourceRect = self.photo.bounds
            self.presentViewController(self.imagePicker, animated: true, completion: nil)

что дает сигабрт,

Действие

Когда приведенный выше код набирается, Xcode выдает ошибку

использование неразрешенного идентификатора «отправитель»

Ожидаемое действие

Я хочу, чтобы было представлено всплывающее окно, содержащее библиотеку фотографий, как показано на этом изображении:

Ожидаемое поведение

Что я делаю неправильно? Спасибо!


person rocket101    schedule 01.09.2015    source источник
comment
Определен ли отправитель в этом кодовом блоке?   -  person Msencenb    schedule 01.09.2015
comment
@Msencenb Нет. Как мне это сделать?   -  person rocket101    schedule 01.09.2015
comment
Последняя строка в этом коде ссылается на переменную отправителя. Часто это используется с IBOutlets, но ошибка означает, что отправитель не определен.   -  person Msencenb    schedule 01.09.2015
comment
может что-то вроде этого? self.imagePicker.popoverPresentationController.sourceRect = photo.bounds   -  person Lucho    schedule 01.09.2015
comment
@Lucho Я получаю сигабрт, когда делаю это   -  person rocket101    schedule 02.09.2015
comment
@rocket101 вот еще одна ссылка с чем-то похожим. может быть, добавив actionSheet.popoverPresentationController?.sourceView = photo, фотография отличается от нуля?   -  person Lucho    schedule 02.09.2015
comment
@ Лучо Это работает !!! Большое спасибо - если вы опубликуете это как ответ, я был бы рад принять его.   -  person rocket101    schedule 03.09.2015
comment
О, теперь я хочу пиццу   -  person CalZone    schedule 03.12.2015


Ответы (1)


попробуйте установить исходный вид всплывающего окна, как это

actionSheet.popoverPresentationController?.sourceView = photo

Надеюсь, поможет.

person Lucho    schedule 03.09.2015