我正在使用 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-推荐答案 strong>
在本教程的 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/
|