Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Swift

Войти
Регистрация
Восстановить пароль
 
nkYellOw
13 / 13 / 5
Регистрация: 23.10.2012
Сообщений: 43
#1

Выплывающее меню по нажатию кнопки (popover?) - Swift

26.02.2016, 16:02. Просмотров 788. Ответов 1

Добрый день! Изучаю свифт, сейчас столкнулся с проблемой, по кнопке выбора фото хочу сделать всплывающее окно с выбором фото (сделать снимок, выбрать из галереи,отмена)

На текущий момент времени решил на половину через popoverPresentationController (
Всплывает окно с тремя кнопками около кнопки выбора, по которой вызывается данное меню
но при выборе не понимаю как передать выбранное значение в основное окно с главной кнопкой
и как при закрытии поповера выполнять действия в главном окне, popoverPresentationControllerDidDismissPopover в данном случае не работает

как я создавал поповер:
1) Есть главный VC с одной кнопкой
2) Есть второй VC с типом поповер и таблицей на VC с тремя значениями (Камера, Галерея,Отмена)
3) Кнопка главного окна present as popover
4) задал идентификатор для VC popover "showPhotoProperties"

5) при нажатии на кнопку в главном VC

Objective-C
1
self.performSegueWithIdentifier("showPhotoProperties", sender: self)
и добавил две функции:

Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
       
        if segue.identifier == "showPhotoProperties" {
            let vc = segue.destinationViewController
            
            vc.preferredContentSize = CGSize(width: 200, height: 165)
            
            let controller = vc.popoverPresentationController
            if controller != nil{
                controller?.delegate = self
                
            }
            
        }
    }
    
    func adaptivePresentationStyleForPresentationController(controller: UIPresentationController) -> UIModalPresentationStyle {
        
        return .None;
    }

пытался решить через opener:ViewController в классе поповера
но при этом я могу менять элементы главной формы но к переменным доступа не имею, геморой в том, что если я поменяю какую либо переменную то при закрытии формы мне нужно на главной форме считывать изменение переменной и вызывать необходимую функцию в зависимости от выбранного значения(камера,галерея)
что не логично и не красиво с точки зрения программиста

Либо необходимо при выборе значения на поповере VC закрывать popover VC и вызывать какую нибудь функцию на главном VC (как это сделать?)

swift только изучаю, поэтому извиняюсь за придуманные костыли! изучение идет медленно но в правильном направлении =)
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.02.2016, 16:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Выплывающее меню по нажатию кнопки (popover?) (Swift):

Открытие БД по нажатию кнопки - Программирование iOS
У кого нибудь есть статья про БД Как это реализовывать На Table View Controller ? или у кого нибудь есть даже исходник Спасибо.

Программно создать Buttons и Popover - Программирование iOS
Здравствуйте, скажите пожалуйста как по нажатию на программно-созданные кнопки показывать один и тот же поповер, но с разным содержимым?...

По нажатию кнопки на View Controllere открыть Table View Controller - Программирование iOS
Как по нажатию кнопки на View Controllere открыть Table View Controller

Сохранение данных по нажатию кнопки "Home" - Swift
Здравствуйте уважаемые! Пишу приложение на Swift для iOS, которое должно сохранять данные при закрытии (сворачивании) приложения. Ни как не...

Как добавить выплывающее меню к уже готовому горизонтальному меню (не меняя дизайн горизонтального меню)? - HTML, CSS
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html...

Меню только по нажатию кнопки меню - Программирование Android
Нужно создать в приложении меню. Но так, чтобы оно всплывало только по нажатию кнопки меню на девайсе а не еще и в Action Barе приложения(...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
cin_cout
26 / 26 / 7
Регистрация: 06.10.2012
Сообщений: 119
26.02.2016, 16:47 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Вариант решения через UIAlertController

Objective-C
1
2
3
4
5
preferredStyle: .ActionSheet 
 
let cancelAction = UIAlertAction(title: "Cancel" ...) 
let takePhotoAction = UIAlertAction(title: "Take photo with camera" ... handler: {_ in self.takePhotoMethod()})
let choosePhotoAction = UIAlertAction(title: "Choose photo from collection" ... handler: {_ in self.choosePhotoFromCollectionMethod()})
Вполне себе легковесное решение.
Сконфигурировать MyImagePickerController: UIImagePickerController, у него заготовки sourceType есть, удобно.
Назначить его делегатом ваш текущий VC.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.02.2016, 16:47
Привет! Вот еще темы с ответами:

Блокировка меню по нажатию правой кнопки - C#
Здравствуйте, Есть несколько Комбо боксов и текстбоксов, в которых надо запретить либо вообще ввод данных, либо ограничить вводимые данные....

Меню по нажатию правой кнопки мыши в поле Edit - Delphi
Добрый день есть ли в среде Rad Studio на Delphi программные средства что бы запретить вызов меню при нажатии кнопки мыши в поле Edit?

Контекстное меню по нажатию правой кнопки мыши на форме - C#
Приветствую Вас! Подскажите пожалуйста, как сделать так, чтобы при нажатии в любом произвольном месте экрана правой кнопкой мыши,...

выплывающее меню - JavaScript
"По щелчку на ссылке сверху плавно "выплывает" меню. Повторный щелчок убирает меню обратно" подскажите какие средства использовать и где...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru