Когда пользователь запускает приложение, я хочу его, показывают stockholm.xib, и Оно делает здесь:
-(void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
NSUserDefaults *startPage =[NSUserDefaults standardUserDefaults];
NSString *page =[startPage stringForKey:@"page"];
NSLog(page);
if(page==nil)
{
//Do nothing
}
else if ([page isEqualToString:@"Default"])
{
//Do nothing
}
else if ([page isEqualToString:@"Stockholm"])
{
NSLog(@"going to Stockholm");
Stockholm *Start =[[Stockholm alloc]initWithNibName:nil bundle:nil];
[self presentModalViewController:Start animated:YES];
}
else {
NSLog(@"HAHA");
}
но когда пользователь закрывает использование stockholm.xib:
[self dismissModalViewControllerAnimated:YES];
после того, как анимация сделана, сбои приложения. и причина, я предполагаю, viewDidAppear вызовы дважды, и поэтому она пытается открыть недавно закрытый xib файл.
теперь, как я могу звонить, представление действительно появлялось только однажды? так, чтобы, когда пользователь возвращается из Стокгольма viewDidAppear привычка быть названным? какое-либо другое решение?
спасибо :)
Вы можете попробовать переместить все эти функции в метод viewDidLoad:
вместо viewDidAppear
. Этот срабатывает только один раз. Если у вас нет причины не ...?
РЕДАКТИРОВАТЬ: дополнительный код, чтобы показать, что я имею в виду, в комментарии
в файле .h:
BOOL firstTime;
в файле .m:
-(void)viewDidLoad {
NSLog(@"viewDidLoad actually fired");
//...
firstTime = YES;
}
-(void)viewDidAppear {
//...
if(firstTime){
//show it
firstTime = NO;
}
}