Форум программистов, компьютерный форум, киберфорум
Наши страницы
Swift
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
nkYellOw
13 / 13 / 7
Регистрация: 23.10.2012
Сообщений: 43
#1

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

26.02.2016, 16:02. Просмотров 1117. Ответов 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
Ответы с готовыми решениями:

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

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

По нажатию кнопки на View Controllere открыть Table View Controller
Как по нажатию кнопки на View Controllere открыть Table View Controller

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

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

1
cin_cout
27 / 27 / 7
Регистрация: 06.10.2012
Сообщений: 130
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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.02.2016, 16:47

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

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

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


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

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

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