Форум программистов, компьютерный форум, киберфорум
Swift
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
14 / 14 / 7
Регистрация: 23.10.2012
Сообщений: 43
1

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

26.02.2016, 16:02. Показов 3298. Ответов 1

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

На текущий момент времени решил на половину через 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)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.02.2016, 16:02
Ответы с готовыми решениями:

Как добавить выплывающее меню к уже готовому горизонтальному меню (не меняя дизайн горизонтального меню)?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"...

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

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

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

1
29 / 28 / 8
Регистрация: 06.10.2012
Сообщений: 133
26.02.2016, 16:47 2
Лучший ответ Сообщение было отмечено nkYellOw как решение

Решение

Вариант решения через 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
26.02.2016, 16:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.02.2016, 16:47
Помогаю со студенческими работами здесь

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

Выплывающее меню
Добрый день. Текст расположен слева например "Игры". При наведение на него справа должен выплывать...

выплывающее меню
как зделать выплывающее меню (в HTML, CSS), которое будет появляться справа от пунктов меню.

выплывающее меню
"По щелчку на ссылке сверху плавно "выплывает" меню. Повторный щелчок убирает меню обратно"...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru