Ответ 1
[ОБНОВЛЕНИЕ]
Исправлено просто с помощью.
-(void)viewDidAppear:(BOOL)animated
{
}
вместо
-(void)viewDidLoad
{
}
Спасибо в любом случае!
/идиотизм
Я искал, но, к сожалению, не повезло.
Мое приложение требует от пользователя входа/регистрации в первый раз, когда он или она запускает приложение. Я знаю, как определить первый запуск (используя NSUserDefaults), но всякий раз, когда я пытаюсь представить модальный элемент, содержащий элементы входа/регистрации, ничего не происходит.
Вот что у меня есть:
-(void)viewDidLoad {
[self showLogin];
[super viewDidLoad];
}
-(void)showLogin {
FlipsideViewController *controller = [[FlipsideViewController alloc] initWithNibName:@"AccountView" bundle:nil];
controller.delegate = self;
controller.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[self presentModalViewController:controller animated:YES];
[controller release];
}
Однако ничего не происходит. Основной вид просто загружается как обычно. Любая помощь приветствуется.
-Giles
[ОБНОВЛЕНИЕ]
Исправлено просто с помощью.
-(void)viewDidAppear:(BOOL)animated
{
}
вместо
-(void)viewDidLoad
{
}
Спасибо в любом случае!
/идиотизм
У меня была та же проблема, и я также использовал viewDidAppear. Единственная проблема с подходом viewDidAppear заключается в том, что если вы загружаете другие UIViewControllers сверху, то перескажите базу, затем ваш код настройки вызывается снова и снова. Мне пришлось добавить логическое значение (инициализированное YES) к этому контроллеру представления и проверить это значение, прежде чем принимать решение о том, что делать. Надеюсь, это поможет кому-то...
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:(BOOL)animated];
if(justLaunched)
{
justLaunched = NO;
if(settingsFileExists)
{
[self displayMainView];
}
else
{
[self displaySetupView];
}
}
}
Как насчет использования performSelector: withObject: afterDelay в функции viewDidLoad? То, как я это делаю, с небольшой задержкой 0,1 с.
И вызывать это в viewDidLoad
не очень безопасно: последовательность viewDidLoad
/ viewDidUnload
может возникать во время выполнения, когда iPhone должен освободить некоторые представления, чтобы вернуть некоторую свободную память.
Побочным эффектом такой последовательности будет то, что ваш контроллер входа будет показан...
Как вы сказали, viewDidAppear
выглядит лучше, но не просто помещает его в конец appDidFinishedLaunching
делегата вашего UIApplication
?