Стандартный подход к отключению пользовательского интерфейса при изменении состояния приложения.

У меня есть приложение iOS, которое работает с внешним аксессуаром, подключенным через разъем док-станции. Возможно, что устройство может отключиться во время использования приложения.

У нас есть приложение Windows, которое использует то же устройство, и сообщение с надписью «Устройство отключено» на частично непрозрачном белом фоне (поэтому представление все еще видно), когда происходит что-то подобное. При повторном подключении устройства сообщение исчезает.

Подходит ли такой подход для iOS или есть стандартный способ справиться с этой ситуацией?


person Brian    schedule 26.07.2012    source источник


Ответы (1)


Если приложение не работает без подключенного устройства, я не понимаю, почему Apple будет против предупреждения и заблокирует пользовательский интерфейс.

Я бы не стал полностью блокировать статический пользовательский интерфейс, чтобы не создавать впечатление зависшего приложения. Вы можете либо добавить простую анимацию, либо добавить кнопку info, чтобы избежать этого.

Два варианта как это сделать:

  1. #P4# <блочная цитата> #P5#
  2. #P6# <блочная цитата> #P7#
person A-Live    schedule 26.07.2012
comment
Я думал больше в духе № 2. В приложении есть определенные представления, которые требуют, чтобы устройство было подключено к сети, чтобы быть полезным, а другие можно использовать независимо от устройства. Это приложение с вкладками, и пользователь по-прежнему сможет переходить к другим представлениям в любое время. - person Brian; 26.07.2012
comment
@rhooligan Вы имеете в виду, что это полностью зависит от выбранной вкладки, и нет вкладки с содержимым, которое частично можно использовать без подключенного устройства? - person A-Live; 26.07.2012
comment
В приложении 3 вкладки. Каждая вкладка имеет несколько представлений. Две вкладки полезны только при подключенном аксессуаре. - person Brian; 26.07.2012
comment
@rhooligan, тогда это довольно просто: а) заставить viewControllers регистрироваться для ваших уведомлений или б) позволить одному deviceManagerConnection выполнять свою работу, получая уведомления и обновляя ваши вкладки. Важно не забыть сделать дополнительную проверку состояния на viewWillAppear. С помощью #a вы можете использовать это свойство для хранения перекрывающегося представления и иметь разные представления для разных контроллеров, для #b проще использовать одно и то же перекрывающееся представление, идентифицируя его с помощью тега. Я не уверен, что подходы изначально совместимы с изменением ориентации, это нужно проверять. - person A-Live; 27.07.2012
comment
Спасибо за информацию. Я реализовал пару методов, называемых disableView и enableView, в базовом ViewController для различных представлений аксессуаров. Кажется, это работает хорошо, поскольку пользователь может вернуться к тому, что он делал, если он снова активирует аксессуар. - person Brian; 27.07.2012