Как реализовать popover для компонента "Cocoa Touch Framework"?
Вопрос: Как можно реализовать (думаю, я подразумеваю, что я имею в виду под лучшей практикой IOS) модальный поповер в рамках "сенсорной среды какао"?
Предполагается, что это универсальное приложение, которое будет поддерживать iPhone и iPad. Можно предположить, что раскадровка используется для основного приложения, использующего сенсорный каркас какао.
Например, рекомендуется, чтобы компонент передавал обратно "спросите пользователя информацию X,Y,Z в основном приложении и его контроллере представления, а затем используйте такой подход:
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let controller = storyboard.instantiateViewController(withIdentifier: "EventPopover")
controller.modalPresentationStyle = .popover
self.present(controller, animated: true, completion: nil)
Это было бы сложно, и тогда приложение должно было бы быть немного скомпилировано для используемого компонента (/framework), так что это не представляется возможным? В качестве альтернативы, возможно, вручную создать всплывающее представление внутри компонента, но не уверены, выиграете ли вы от оптимального подхода IOS, который помог бы поддерживать iPad и iPhone по сравнению с обычным поповерным подходом?
Например, скажем, у вас есть пользовательский компонент карты, который вы хотите, чтобы пользователь мог включить, но один аспект этого компонента заключается в том, что когда пользователь выбирает / опускает булавку, вы хотите иметь возможность вызвать модальное диалоговое окно для попросите пользователя настроить имя для этого удаленного контакта.
(надеюсь, это имеет смысл)
1 ответ
Я обнаружил, что использование поповерного механизма UIViewController - это подход, отметив, что он будет показывать поповер для iPad, а для iPhone использовать весь экран.
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let controller = storyboard.instantiateViewController(withIdentifier: "EventPopover")
controller.modalPresentationStyle = .popover
self.present(controller, animated: true, completion: nil)