UIViewController 在应用程序启动时呈现一次[关闭]

Posted

技术标签:

【中文标题】UIViewController 在应用程序启动时呈现一次[关闭]【英文标题】:UIViewController presented once when the app launches [closed] 【发布时间】:2013-09-10 09:20:41 【问题描述】:

屏幕是应用程序启动时的第一页。用户只能单击接受并继续按钮继续。 此页面最初仅出现一次,当用户单击接受并继续按钮时,此页面不会出现在此应用程序的后续启动中。 只有当用户清除了与此应用程序相关的所有数据时,此页面才会在启动时再次出现。

【问题讨论】:

ok,如果可能,然后删除评论:没问题,只是通知你 【参考方案1】:
    创建一个视图控制器。并且,在应用启动时加载它。 当用户点击“接受并继续”时,继续在 Plist 中保存一个 BOOL 值,NSUserDefault。 下次加载应用时检查此值并根据您保存的 BOOL 值显示屏幕。 当用户清除数据后执行同样的操作。

【讨论】:

【参考方案2】:

你可以使用NSUserDefaults

//第一次启动时设置值如下:

[[NSUserDefaults standardUserDefaults] setValue:@"YES" forKey:@"LaunchingFirstTime"];

之后

NSString *launch = [[NSUserDefaults standardUserDefaults]valueForKey:@"LaunchingFirstTime"];

if([launch isEqualToString:@"YES"])
    //Don't Show Screen

else
    //Show Screen

希望对您有所帮助

【讨论】:

Xman 我使用了这个逻辑 - (void)viewDidLoad welcomePage *temp = [[welcomePage alloc]initWithNibName:@"welcomePage" bundle:nil]; [self presentViewController:temp 动画:YES 完成:^(void)]; else NSLog(@"screen");但它显示警告:尝试在 上呈现 ,其视图不在窗口层次结构中!并且欢迎屏幕没有出现 @Ram :这是不同的问题.. 这个逻辑是有效的,但我什么时候开始使用这些应用程序并再次出现 NSUserDefaults 可能没有机会保存,具体取决于进程的终止方式。检查这个old question【参考方案3】:

您似乎在谈论启动画面。如果您想要一些自定义按钮,例如接受和继续,您可以创建一个自定义视图并从 AppDelegate 的 didFinishLaunching 方法调用该视图。点击按钮可以添加相应的方法。

【讨论】:

【参考方案4】:
 if ([[NSUserDefaults standardUserDefaults] boolForKey:IS_FIRST_LOGIN])

    showYourPage();

#########In your Page#######
-(void) acceptButtonClicked

    [[NSUserDefaults standardUserDefaults] setBool:NO forKey:IS_FIRST_LOGIN];

【讨论】:

我在 viewDidLoad 中使用了这个逻辑,但它不工作显示警告:尝试在 上呈现 ,其视图不在窗口层次结构中!【参考方案5】:

你可以这样做

self.userDefaults = [NSUserDefaults standardUserDefaults];
NSString *str = [self.userDefaults valueForKey:@"SecondLaunch"];
NSLog(@"the string value is : %@",str);

if ([str isEqualToString:@"Second"]) 
    NSLog(@"It's Second Launch");
 else 
    NSLog(@"It's First Launch");
    [self.userDefaults setObject:@"Second" forKey:@"SecondLaunch"];
    [self.userDefaults synchronize];        

【讨论】:

以上是关于UIViewController 在应用程序启动时呈现一次[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

从设置视图 iOS 返回时启动不同的 UIViewController

启动时如何将数据从 uiviewcontroller 发送到 uipopover?

在单击按钮时重置/重新初始化/重新启动 UIViewController 视图的最简单(正确)方法是啥?

UIViewController 关闭时不接收 dealloc 或 viewDidUnload

prepareForSegue 调用但不加载下一个 UIViewController

在 UIViewController (iOS) 中重新启动绘图和事件