我正在推出我的应用程序的第 2 版,需要对新功能进行简短的演练。我完成了一个教程并在另一个应用程序中创建了我的演练,其中一个 UIViewController 是根 View ,一个 UIPageViewController 包含一个 UIView,我可以在其中显示我的屏幕。它按我的意愿工作。

现在我想将它集成到我的应用程序中。我可以轻松地从示例应用程序导入我的代码。

我相信在应用程序委托(delegate)中,我会查看用户是否曾经通过演练,如果没有,切换到开始演练的 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];
      }

最佳答案

显示提示的最好和最简单的方法是使用这个库:
https://github.com/chrismiles/CMPopTipView

否则,如果你想用你提到的方法来做,那么你需要在 NSUserDefaults 中保留一个变量,比如 bool walkthroughShownOnce 。最初,如果您像这样从 NSUserDefaults 访问应用程序委托(delegate)中的变量:

bool tempInt = [[NSUserDefaults standardUserDefaults] boolForKey:@"walkthroughShownOnce"];

然后它将返回 false 。这是当您展示演练时,最后在您展示演练后,只需像这样使变量为真:
[[NSUserDefaults standardUserDefaults] setBool:TRUE forKey:@"walkthroughShownOnce"];

关于ios - 在 iOS 应用中演示演练,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23251014/

10-12 16:42