在iOS应用程序中演示演练

时间:2014-04-23 17:12:30

标签: ios uistoryboard uipageviewcontroller

我正在推出我的应用的第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];
      }

2 个答案:

答案 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