iPhone: странный пустой белый экран при запуске после переноса моего приложения на IOS 5

#iphone #ios #ios5

#iPhone #iOS #ios5

Вопрос:

У меня странная проблема, не знаю, какой код мне следует опубликовать, потому что я не знаю, в чем проблема, но, пожалуйста, попросите больше примеров кода, если вам нужно;

Мое приложение было построено с использованием «Xcode 3.2 и IOS 4.3», затем недавно я начал использовать Xcode 4.2 с базовой IOS 5; Открыл свой проект в новой среде и установил цель развертывания на IOS 4.3. Приложение работает так же хорошо, но у меня есть одна проблема;

Приложение хорошо запускается с заставки, а затем я должен был увидеть первый вид с навигационного контроллера, но вместо этого я вижу пустой белый экран! и он остается неподвижным .. тогда вот сюрприз; когда я нажимаю кнопку «Домой», а затем снова открываю приложение из приостановленного режима, я могу правильно получить первый вид! Какие части моего кода я должен проверить? Или это проблема конфигурации, которую я могу исправить в настройках сборки? Когда я отлаживаю, я могу нажать метод viewDidAppear ViewController «viewDidAppear», но на самом деле все, что я вижу, это белый экран.

Спасибо.

Комментарии:

1. Я делаю дикое предположение, что в вашем корневом (впервые запущенном) viewcontroller переместите любой код, который что-то отображает, из метода viewDidLoad в viewDidApear — просто чтобы посмотреть, решит ли это вашу проблему

2. @Alon Amir Tnx но это не сработало.

3. После возобновления работы приложения вы сказали, что оно отлично отображает ваш вид. Выполняете ли вы какие-либо действия с отображением в applicationDidBecomeActive?

4. @Alon Amir Я не использую этот метод

Ответ №1:

Вы часто видите это, если вы создаете свое основное UIWindow в коде, но в вашем файле nib определено дополнительное UIWindow. В iOS 4 окно, которое вы создаете в коде, появляется над окном, определяемым кончиком. В iOS 5 все наоборот — пустое окно, определяемое кончиком, появляется над вашим окном, созданным в коде.

Если вы создаете свое главное окно в коде, проверьте свой файл nib, удалите все лишние окна и удалите настройки основного файла Nib из вашего файла info.plist.

Комментарии:

1. спасибо, я проверю, что вы говорите, мое приложение — это приложение на основе навигации, которое я создал как оконное, а затем позже сделал его навигационным вручную. Но тогда почему он работает хорошо, когда я приостанавливаю его обратно?

2. Кто знает — iOS предназначена для одного основного пользовательского окна. Если у вас их два, то все ставки отменены. Учитывая вашу отправную точку, я почти уверен, что вы обнаружите, что в вашем наконечнике есть дополнительное окно. Удалите его, и проблема исчезнет.

3. СПАСИБО, сработало! Но когда я также удаляю настройки основного файла Nib из файла info.plist, я получаю черное окно, и оно не работает.? Также переход от заставки к просмотру немного странный .. какую-либо оптимизацию я могу здесь сделать?

4. Это зависит от того, что именно вы делаете, и я не могу этого сказать отсюда. Если вы полагаетесь на перо для создания контроллера представления верхнего уровня, вам все равно понадобится настройка основного файла Nib. Возможно, было бы лучше создать свой UIWindow, контроллер корневого представления и заставку программно, чтобы вы могли быть уверены, что они будут созданы именно тогда, когда вы ожидаете, и в том порядке, в котором вы ожидаете. «немного странно» мне мало что говорит.