Я работаю над приложением, которое предоставляет новое расширение/виджет «Сегодня» для Центра уведомлений, так как эта функция была добавлена в iOS 8.
Однако мне нужно расширение, чтобы выбирать между парой разных контроллеров представления, настроенных в раскадровке, на основе значений одной простой переменной. Поэтому, если пользователь вносит изменения в основное приложение, эта переменная будет иметь другое значение, и поэтому предполагается, что расширение Today загрузит другой начальный контроллер представления.
Я читал похожие вопросы и их решения, поэтому я попытался настроить фиктивный контроллер представления в качестве начального контроллера представления на раскадровке расширения, создать несколько модальных переходов, указывающих на другие контроллеры представления, дал всем им имя идентификатора, отключил анимацию на переходы и реализовал пользовательский класс для фиктивного контроллера представления. Затем этот класс вызывает performSegueWithIdentifier: sender:nil
в viewDidAppear:
. Однако это, похоже, не работает с сегодняшним расширением, и показывает только «Невозможно загрузить», когда я тестирую его в симуляторе.
Редактировать: Хорошо, я делал что-то не так, это действительно работает. Но каждый раз, когда открывается центр уведомлений, содержимое отображаемых контроллеров представления исчезает и появляется снова в течение миллисекунд, потому что фиктивный контроллер представления загружается снова. Кроме того, высота расширений не меняется при представлении одного из других контроллеров представления.
Что я могу сделать, чтобы добиться желаемого поведения сегодняшнего расширения?