gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:22:20 27 4
gpt4 key购买 nike

我正在使用 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];

最佳答案

在本教程的 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com