Fre*_*nck 29 cocoa-touch objective-c ios
Tweetbot和Clear show在应用程序的第一次启动时,一个小教程屏幕应用程序如何工作.带有小教程的屏幕仅在应用程序首次启动时弹出(1次)
如何以及我能做出类似的事情?任何人都可以把我推向正确的方向吗?
查看我的意思是:

chr*_*htz 53
我假设Xcode你实际上是指iOS.
您需要做的是使用NSUserDefaults该类来存储一个标志,指示用户之前是否已经看过教程屏幕.
当您的应用首次加载时(或者您想要决定是否显示教程屏幕时),请执行以下操作:
if(![[NSUserDefaults standardUserDefaults] boolForKey:@"hasSeenTutorial"])
[self displayTutorial];
Run Code Online (Sandbox Code Playgroud)
这将为当前用户检查已保存的NSUserDefaults,以获取名为"hasSeenTutorial"的值,该值尚不存在.由于它不存在,它会调用displayTutorial.displayTutorial指的是创建教程视图的方法.你可以找出那个部分.
然后,一旦用户关闭教程屏幕:
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"hasSeenTutorial"];
Run Code Online (Sandbox Code Playgroud)
该值将保存为您的用户配置文件,这意味着下次检查它时,它将是真的,因此displayTutorial不会被调用.
Bla*_*zer 33
在你的viewDidLoad中:
if (![@"1" isEqualToString:[[NSUserDefaults standardUserDefaults]
objectForKey:@"aValue"]]) {
[[NSUserDefaults standardUserDefaults] setValue:@"1" forKey:@"aValue"];
[[NSUserDefaults standardUserDefaults] synchronize];
//Action here
}
Run Code Online (Sandbox Code Playgroud)
当然,如果我们想在更新后告诉用户一些有关功能的信息(不仅是第一次推出应用),下面的解决方案可能是合适的.
在你的viewDidLoad中:
NSString *currentBundleVersion = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"];
NSString *previousBundleVersion = [[NSUserDefaults standardUserDefaults] objectForKey:@"PreviousBundleVersion"];
if (![currentBundleVersion isEqualToString:previousBundleVersion] ) {
// Here you can initialize your introduction view and present it!
}
Run Code Online (Sandbox Code Playgroud)
一旦用户关闭介绍:
NSString *currentBundleVersion = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"];
NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
if (standardUserDefaults) {
[standardUserDefaults setObject:currentBundleVersion forKey:@"PreviousBundleVersion"];
[standardUserDefaults synchronize];
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,存储在standardUserDefaults中的应用程序包版本将仅在更新后与当前包版本不同,并且仅在首次启动时显示一次.
| 归档时间: |
|
| 查看次数: |
26773 次 |
| 最近记录: |