2014-10-23 2 views
0

Я просто испытываю что-то странное, и это похоже на изменение в iOS 8. Ранее (iOS7) при тестировании appWillBecomeActive вызывался до viewDidAppear. Это так, что в iOS 8 это наоборот? что тогда было бы хорошим обходным решением, чтобы мое приложение работало на обеих версиях iOS? есть ли какая-то переменная для проверки, если был вызван viewDidAppear, чтобы я мог снова запустить мои функции настройки представления?iOS 8 viewDidAppear называется до appWillBecomeActive?

EDIT: на самом деле это похоже на случайный случай в iOS8. иногда viewDidAppear вызывается до appWillBecomeActive. Иногда это наоборот ...

+0

'appDidLaunch ...' вызывается перед' viewDidAppear: ', почему бы не переместить логику из appWillBecomeActive? – KudoCC

+0

Я не могу найти документацию appDidLaunch .... – suMi

+0

Извините, это 'приложение: didFinishLaunchingWithOptions:'. – KudoCC

ответ

2

appWillBecomeActive является делегат находится в вашем самом приложении делегата .. нет никакой гарантии, что она будет называться перед любыми другими делегатами UIViewController (viewWillAppear, DidLoad, Init)

если вы хотите сделать какую-либо логику до того, как ожидают какие-либо другие страницы. Возможно, вы захотите использовать application:didFinishLaunchingWithOptions:, и вы можете захотеть загрузить представление запуска самостоятельно или создать нового делегата, чтобы обнаружить, что вы закончили логику, которую вы положите в вашем application:didFinishLaunchingWithOptions:.

+0

, что имеет смысл, но я реализовал приложение: didFinishLaunchingWithOptions: в моем делетете уже. так что я больше не могу иметь его в своем основном файле, не так ли? что я делаю? – suMi

+1

ОК. был довольно глупый вопрос. просто переместил его в пользовательскую функцию и вызвал его из делегата. похоже, работает надежно для первых 3 тестов ... – suMi

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