嗨,我发现了一个很棒的教程来展示我的应用程序概述。查看完此教程视图后,如何返回主应用程序?
这是本教程和所有source code的位置。

我的应用程序视图在情节提要中,并且我有一个导航控制器,其中装有我的rootviewcontroller。
我希望在显示教程视图的最后一页后返回到导航控制器的rootviewcontroller。
谢谢您的帮助。



这是我的故事板:
我用于加载教程的代码是在AppDelegate中的:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
     /*  This loads up the xib but I can't get back to the storyboard rootViewController */
    if (tutorialHasBeenSeen == false) {
        self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
        // Override point for customization after application launch.
        self.appViewController = [[APPViewController alloc] initWithNibName:@"APPViewController" bundle:nil];
        self.window.rootViewController = self.appViewController;
        [self.window makeKeyAndVisible];
        tutorialHasBeenSeen =TRUE;

    }


    return YES;
}


我会尝试在AppViewController.m中通过以下方法弹出rootView:

- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController {

    NSUInteger index = [(APPChildViewController *)viewController index];

    index++;

    if (index == 5) {
        return  nil;
    }
        return [self viewControllerAtIndex:index];

}

最佳答案

您是否尝试过使用

[self.navigationController popToRootViewControllerAnimated:YES];

编辑

现在,我了解了您要执行的操作,建议您更改方法:
与其选择是否在应用程序委托的didFinishLaunchingWithOptions方法中显示该教程,不如为什么不总是从应用程序的“第一”视图控制器开始,并以此方式确定是否向用户显示该教程?您可以按照建立的显示分层内容的导航方式在First视图控制器中调用Tutorial视图控制器。



之所以不能从Tutorial转到First View Controller是因为您是直接从应用程序委托将Tutorial分配为窗口视图控制器。因此,没有办法从教程“返回”到您的“第一”视图控制器,要解决此问题,我可以考虑两个选项,


在期望的时刻,将应用程序的窗口视图控制器更改为“第一”视图控制器,而不是已分配的“教程”视图控制器。您可能会猜到,这是一个棘手的方法,而且不是很干净的方法。
在您的应用中设置适当的导航层次结构,因此“第一”视图控制器应显示您的“教程”视图控制器。然后,在需要的时刻,您只需关闭或弹出教程,然后返回到您的First view controller。


作为结论,

1.不要从AppDelegate中显示您的教程,因此请保持以下清洁或必要的方式进行其他操作。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    return YES;
}


2.在将成为您的第一个视图控制器的视图控制器中,使用segues或通过code应用所需的逻辑来确定用户何时应查看该教程来调用您的教程。如果在启动应用程序并出现“教程”时正确完成操作,则您首先显示“第一”视图控制器时将看不见

3.在您的Tutorial视图控制器中,并在所需的时间dismisspop(取决于您的导航),从您的视图控制器开始,以便您可以返回到First View Controller

关于ios - 应用程序的教程屏幕,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20973359/

10-13 08:50