Что заставило бы домашний экран iPhone быть видимым после модального флип-перехода? - PullRequest
9 голосов
/ 30 декабря 2011

В некоторых случаях, не каждый раз, когда мое приложение представляет модальный контроллер вида, используя presentModalViewController:animated: с modalTransitionStyle, установленным на UIModalTransitionStyleFlipHorizontal, домашний экран iPhone виден за анимацией.Большую часть времени фон черный, как и ожидалось.Нет ничего необычного в том, что я установил window или rootViewController (a UITabBarController).Я отключил интерфейс своего приложения, но вы можете увидеть проблему на снимке экрана, сделанном с iPhone 4 во время перехода.

Что может вызвать это?Я не знаю, как это сделать, даже если бы я хотел такого поведения.

РЕДАКТИРОВАТЬ: Этот снимок экрана был отправлен мне тестером, я сам не порицал его.Они сказали мне, что это произошло во время определенного сеанса приложения, и как только это произошло, это произошло для всех переходов.Когда они закрывали / перезапускали приложение, это больше не происходило, и с тех пор они его не видели.Мне интересно, нужно ли мне беспокоиться об этом (то есть я могу предотвратить это в коде).

РЕДАКТИРОВАТЬ 2: Это приложение не использует IB.Все контроллеры / представления создаются в коде.

enter image description here

Ответы [ 5 ]

3 голосов
/ 21 января 2012

У меня была такая же проблема раньше.Попробуйте использовать [viewController.view setBackgroundColor:[UIColor blackColor]]; для просмотра вашего нажатия.У меня все равно получилось!

2 голосов
/ 17 марта 2012

Это происходит, когда iOS отправляет предупреждение о памяти приложению, и платформа приложения автоматически выводит все компоненты представления, которые не видны, за исключением того, что структуры данных, связанные с viewController, остаются, и когда есть ссылка на представление, она будетснова загрузите представление из пера (в вашем случае loadView называется, я полагаю), вы должны убедиться, что ваш код построения представления является восстанавливаемым и обнулить все объекты, связанные с компонентами представления в методе viewDidUnload вашего контроллера представления.

Вы также можете сделать это, запустив ваше приложение с помощью симулятора, и когда вы находитесь в этом модальном представлении, запустите симуляцию «Предупреждение памяти» из меню «Устройство» в верхней части экрана вашего компьютера.

0 голосов
/ 01 декабря 2013

Инструкции по устранению этой проблемы:

  1. Перейдите к задействованной XIB и выберите View Controller.
  2. Перейдите на панель атрибутов справа.Зайдите в View >> Background color.
  3. Теперь установите цвет, который хотите поддержать переход.

Надеюсь, это поможет:)

0 голосов
/ 13 марта 2012

Я видел эту проблему, даже с приложением Facebook iPhone.Может быть, это ошибка Apple.

0 голосов
/ 31 декабря 2011

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

Себ

...