Ограничение сверху и снизу изменено при переходе из компактного режима в режим расширения, из режима расширения в режим свертывания в расширении iMessage.

Я разрабатываю приложение расширения iMessage с помощью Swift 3 (iOS 10). Но моя проблема заключается в том, что когда пользователь меняет режим со свертывания на расширение или расширение на свертывание, верхнее ограничение изменяется, поэтому представление скрывается.

Из этой ссылки Почему руководство по верхнему макету перемещая мое расширение iMessage, я исправил проблему (проблема в том, что когда пользователь присутствует в контроллере представления, представление будет скрыто), но при изменении режима это не работает, и представление скрывается.

Есть ли у кого опыт в этой области?


person Svetoslav Atanasov    schedule 21.10.2016    source источник


Ответы (1)


Я не уверен, почему он так себя ведет, это похоже на ошибку на стороне Apple. Однако корневой MSMessageViewController выровнен правильно, и похоже, что только корневой контроллер представления получает такие уведомления, как didTransitionToPresentationStyle или didSelectMessage.

В своем приложении я решил:

  • добавить представление MSMessageViewController в качестве подпредставления корневого контроллера — для контроллеров, которым необходимо работать в полноэкранном и компактном стиле.

  • Для MSMessageViewControllers, которые представлены только в полноэкранном режиме, я добавил ограничение верхнего поля раскадровки с фиксированным значением. Также всякий раз, когда didTransitionToPresentationStyle вызывается с компактным стилем презентации, эти контроллеры отклоняются.

Также для удобства я создал одноэлементный объект, который получает все переходные события и позволяет любому контроллеру представления подписываться в качестве делегата.

Связанное обсуждение на форуме разработчиков Apple: https://forums.developer.apple.com/thread/65349< /а>

person MP23    schedule 21.10.2016
comment
Привет, спасибо за ваш ответ. Извините, но не могли бы вы дать мне более подробную информацию о вашем решении? Я пока не уверен, как это решить. - person Svetoslav Atanasov; 22.10.2016