У меня есть UISegmentedControl
с 4 сегментами. Некоторые из этих сегментов создают экземпляр UIAlertController
при выборе пользователем.
На UIAlertController
вы можете установить popoverPresentationController?.sourceView
, чтобы позволить контроллеру предупреждений указывать на исходное изображение, которое будет использоваться на более крупных устройствах, таких как iPad.
Я пытаюсь передать UISegmentedControl
, который работает, но якорь всегда находится в верхнем левом углу сегментированного элемента управления, а не в выбранном сегменте.
Я бы хотел использовать фактический сегмент UISegmentedControl
в качестве sourceView, но в UISegmentedControl
нет массива, содержащего сегменты.
Существует свойство subviews, которое содержит массив представлений. Число соответствует количеству сегментов, поэтому я нашел свое решение. Но если я назначу:
alertController.popoverPresentationController?.sourceView = segmentedControl.subviews[2]
... для 3-го сегмента иногда это работает, а иногда нет. Похоже, этот массив не всегда имеет порядок сегментов на экране.
Как мне найти правильное подпредставление для использования?