2010-07-31 2 views
1

С помощью многозадачности в iOS4 кнопка «домой» помещает приложение в фоновый режим, и когда он возвращается на передний план, я хочу, чтобы контроллер просмотра «обновлялся» (и, следовательно, viewWillAppear для вызова). Я положил это в приложение делегата мысли это должно работать, но ничего не происходитУчастник приложения и контроллер просмотра в iOS4

- (void)applicationDidFinishLaunching:(UIApplication *)application {  

    // 
    [window addSubview:viewController.view]; 
    [window makeKeyAndVisible]; 
} 


- (void)applicationWillEnterForeground:(UIApplication *)application { 
    [viewController.view reloadInputViews]; 
} 

Может кто-нибудь помочь мне с принуждать контроллер представления в «выполнить»/обновить, если он уже показывает?

+0

Пожалуйста, разместите код, в котором вы создаете экземпляр viewController, а также разместите reloadInputViewsCode. Помните, что willEnterForeground вызывается только в том случае, если ваше приложение находится в состоянии приостановлено. Процессор может закрыть большинство приостановленных приложений в любое время по памяти или по другим причинам. В этом случае вызывается applicationDidFinishLaunching. – RunLoop

+0

Hi Run Loop, обратите внимание на ваш запрос и добавленный выше. Приложение читает картотеку и обновляет данные в представлении. Пользователь может выйти из приложения и скопировать новые данные в картон, когда он вернется в приложение, ему необходимо обновить представление. Это выполняется в viewWillAppear и отлично работает в iOS3, теперь applicationWillEnterForeground вызывается в iOS4. Но как я могу проверить контроллер View для обновления и, следовательно, viewWillAppear выполняется? – munchine

+0

Без просмотра кода для reloadInputViews это сложно, но см. Мой ответ ниже. – RunLoop

ответ

1

Вы можете вызвать viewWillAppear явно, например.

- (void)applicationWillEnterForeground:(UIApplication *)application { 
    [viewController.view reloadInputViews]; 

    [viewController viewWillAppear]; 
} 
+0

Это так здорово, я даже не знал, что вы можете это сделать. Протестировал его, и он работал (в simlulator, есть другие проблемы на устройстве, но я не думаю, что это связано). Для других читателей я собирался использовать эту работу, предложенную здесь http://stackoverflow.com/questions/3187642/ios4-removing-app-from-memory-via-code. Но я иду с Run Loop. – munchine

Смежные вопросы