我正在推出我的应用的第2版,需要对新功能进行简短的演练。我经历了一个教程并在另一个应用程序中创建了我的演练,其中一个UIViewController是根视图,一个UIPageViewController包含一个UIView,我在其中显示我的屏幕。它按我想要的方式工作。
现在我想在我的应用中集成它。我可以从示例应用程序轻松导入我的编码。
我相信app委托我将看到用户是否曾经历过演练,如果没有,请切换到启动演练的UIViewController,并写入用户已经看过演练的默认值(所以他们不需要再次看到它。我在演练中有一个按钮进入主屏幕。
方法" applicationdidFinishLaunchingWithOptions的部分代码如下:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
UIPageControl *pageControl = [UIPageControl appearance];
pageControl.pageIndicatorTintColor = [UIColor lightGrayColor];
pageControl.currentPageIndicatorTintColor = [UIColor blackColor];
pageControl.backgroundColor = [UIColor whiteColor];
UIStoryboard *storyBoard;
storyBoard = [UIStoryboard storyboardWithName:@"MainStoryboard.storyboard" bundle:nil];
UIViewController *walkthrough = [storyBoard instantiateViewControllerWithIdentifier:@"NextViewController"];
//[self presentViewController:walkthrough animated:YES completion:nil];
[self.window setRootViewController:walkthrough];
return YES;
}
以下是完整的代码。非常感谢你的帮助:
// User Defaults
UserDefaults *thisUserDefaults = [[UserDefaults alloc] init];
[thisUserDefaults registerDefaults];
if (![[[NSUserDefaults standardUserDefaults]
valueForKey:kAppHasRunBeforeKey] boolValue]) {
UIPageControl *pageControl = [UIPageControl appearance];
pageControl.pageIndicatorTintColor = [UIColor lightGrayColor];
pageControl.currentPageIndicatorTintColor = [UIColor blackColor];
pageControl.backgroundColor = [UIColor whiteColor];
UIStoryboard *storyBoard;
storyBoard = [UIStoryboard storyboardWithName:@"Main_iPhone" bundle:nil];
UIViewController *walkthrough =
[storyBoard instantiateViewControllerWithIdentifier:@"ViewController"];
[self.window setRootViewController:walkthrough];
[[NSUserDefaults standardUserDefaults] setBool:YES
forKey:kAppHasRunBeforeKey];
}
答案 0 :(得分:7)
显示提示的最佳和最简单的方法是使用此库: https://github.com/chrismiles/CMPopTipView
否则,如果你想用你提到的方法来做,那么你需要在NSUserDefaults
中保留一个变量,假设一个bool walkthroughShownOnce
。最初,如果您正在访问来自NSUserDefaults的app delegate中的变量,请执行以下操作:
bool tempInt = [[NSUserDefaults standardUserDefaults] boolForKey:@"walkthroughShownOnce"];
然后它将返回false
。这是当你展示你的演练时,最后在你展示了演练之后,只需将变量设为真如下:
[[NSUserDefaults standardUserDefaults] setBool:TRUE forKey:@"walkthroughShownOnce"];
答案 1 :(得分:2)
这个图书馆也是SwiftyWalkthrough。