• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 使用 Pageviewcontroller 教程后的导航 Controller

[复制链接]
菜鸟教程小白 发表于 2022-12-12 23:45:39 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我正在使用 pageViewController 来展示我的应用程序的所有功能。但是我只想在应用程序的第一次启动时显示它,而不是每次都显示它。为了做到这一点,我创建了一个对象,该对象存储一个 bool 值以显示或不显示教程。该 bool 值用于 AppDelegate.m

if(tutoStatus == NO)
    {

        self.window = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds];

        UIStoryboard *storyboard = [UIStoryboard storyboardWithName"MainStoryboard" bundle:nil];

        UIViewController *tutoViewController = [storyboard instantiateViewControllerWithIdentifier"ViewController"];

        UINavigationController *navController = [[UINavigationController alloc]initWithRootViewController:tutoViewController];

        [self.window setRootViewController:navController];

        [Tutorial setTutoStatus:YES];
        [Tutorial savePrefs];
    }

    else
    {
        self.window = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds];

        UIStoryboard *storyboard = [UIStoryboard storyboardWithName"MainStoryboard" bundle:nil];

        UIViewController *homeViewController = [storyboard instantiateViewControllerWithIdentifier"homeViewController"];

        UINavigationController *navController = [[UINavigationController alloc]initWithRootViewController:homeViewController];

        [self.window setRootViewController:navController];
    }

我的问题是我在这两种情况下都创建了一个导航 Controller 。因此,如果我有要显示的教程,用户将在导航栏中获得一个后退按钮,并且可以返回 PageViewController。在应用启动时显示教程的最佳方式是什么?

谢谢

--编辑

我使用下面的代码解决了我的问题

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    if ([[NSUserDefaults standardUserDefaults] boolForKey"HasLaunchedOnce"])
    {
        NSLog(@"not first launch");

        UIStoryboard* storyBoard = [UIStoryboard storyboardWithName"MainStoryboard"
                                                      bundle:nil];
        self.homeViewController = [storyBoard instantiateViewControllerWithIdentifier"HomeViewController"];
        self.window.rootViewController = self.self.homeViewController;
    }
    else
    {
        NSLog(@"first launch");
        [[NSUserDefaults standardUserDefaults] setBool:YES forKey"HasLaunchedOnce"];
        [[NSUserDefaults standardUserDefaults] synchronize];

        UIStoryboard* storyBoard = [UIStoryboard storyboardWithName"MainStoryboard"
                                                             bundle:nil];
        self.tutoViewController = [storyBoard instantiateViewControllerWithIdentifier"TutoViewController"];
        self.window.rootViewController = self.tutoViewController;
    }

    [self.window makeKeyAndVisible];



Best Answer-推荐答案


在本教程的 View Controller 的 viewWillAppear: 方法中,您可以使用它来隐藏返回按钮:

[self.navigationItem setHidesBackButton:YES animated:YES];

然后在viewDidDisappear:中,可以恢复后退按钮:

[self.navigationItem setHidesBackButton:NO animated:YES];

关于ios - 使用 Pageviewcontroller 教程后的导航 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24628943/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap