gpt4 book ai didi

iphone - 如何只调用一次 ViewDidAppear?

转载 作者:行者123 更新时间:2023-12-03 18:37:28 25 4
gpt4 key购买 nike

当用户启动应用程序时,我希望它显示 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 文件。

现在,我如何调用只出现一次的 View ?这样当用户从斯德哥尔摩回来时 viewDidAppear 就不会被调用?还有其他解决方案吗?

谢谢:)

最佳答案

您可以尝试将所有功能移至 viewDidLoad: 方法而不是 viewDidAppear 中。那个只发射一次。除非你有理由不...?

编辑:更多代码来显示我在评论中的意思

在.h文件中:

BOOL firstTime;

在 .m 文件中:

-(void)viewDidLoad {
NSLog(@"viewDidLoad actually fired");
//...
firstTime = YES;
}
-(void)viewDidAppear {
//...
if(firstTime){
//show it
firstTime = NO;
}
}

关于iphone - 如何只调用一次 ViewDidAppear?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2259977/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com