Действие на UIAlertController, которое не отклоняет AlertController? (Отключить удаление)

У меня есть лист действий (UIAlertController со стилем UIAlertControllerStyleActionSheet) с несколькими действиями, представленный на iPad в виде всплывающего окна. Я хочу, чтобы когда пользователь выбирает один из вариантов (скажем, первый), я хочу, чтобы лист действий переходил на другой лист действий, используя анимацию «Показать» (ранее «Отправить»). Это возможно? Или, если это невозможно, можно ли представить второй лист действий как всплывающее окно из действия, на которое нажали (я бы предпочел метод перехода, если это возможно).

Заранее спасибо!


person ricky3350    schedule 05.03.2015    source источник
comment
Просто вызовите свое второе предупреждение из действия первого и представьте его с помощью пользовательского объекта анимации, как вы хотите.   -  person Michael    schedule 06.03.2015
comment
@Nikita Когда вы нажимаете на действие, оно закрывает AlertController. Во всяком случае, я не уверен, как это сделать.   -  person ricky3350    schedule 06.03.2015
comment
Невозможно предотвратить закрытие контроллера предупреждений. Это одно большое изменение (и ограничение) по сравнению со старым UIActionSheet.   -  person rmaddy    schedule 06.03.2015
comment
Можно ли отключить действие (чтобы оно не выглядело отключенным) и добавить к нему UIGestureRecognizer?   -  person ricky3350    schedule 06.03.2015
comment
Нет. Похоже, вам нужно написать свой собственный аналогичный элемент управления или найти тот, который делает то, что вы хотите.   -  person rmaddy    schedule 06.03.2015


Ответы (1)


Хорошая вещь в iOS 7 и 8 в этом отношении заключается в том, что действительно довольно легко написать контроллер представления, который выглядит и действует как предупреждение, за исключением того, что это просто контроллер представления, так что вы можете поместить в него любой контент, который вам нравится, и вы можете заставить его вести себя так, как вы хотите.

Например, см. мой проект на github: https://github.com/mattneub/custom-alert-view-iOS7

Как вы увидите, все, что мы делаем, это начинаем с небольшого представления, разработанного в файле .xib и управляемого контроллером представления. Затем мы представляем контроллер представления. Этот контроллер представления знает, как анимировать внешний вид представления и поместить за ним «затемненное» представление, как предупреждение! И в этом нет ничего удивительного, поскольку в iOS 8 контроллер предупреждений является представленным контроллером представления, поэтому нет никаких причин, по которым вы не должны имитировать его поведение. Это не делает ничего, что вы не можете сделать сами.

person matt    schedule 05.03.2015
comment
Жаль, что нет ничего лучше. - person ricky3350; 06.03.2015
comment
Я не согласен. Я думаю, что на данный момент это именно то, что вы должны делать. Apple понизила встроенные оповещения и продвинула настраиваемые представленные контроллеры представлений. - person matt; 06.03.2015
comment
Замечательно, что Apple продвигает настраиваемые представленные контроллеры представления, но я согласен с @ricky3350 в том, что, к сожалению, приходится создавать собственный контроллер представления, который выглядит идентично Apple, только для того, чтобы получить эту небольшую пользовательскую функциональность. - person Richard Venable; 17.07.2015
comment
@RichardVenable Я тайно понимаю и вашу точку зрения, но я не хочу говорить об этом публично. (Ой, я сказал это вслух?) - person matt; 17.07.2015