当根视图控制器是UITabBarController时,如何重新创建UIViewController堆栈?

时间:2010-08-08 16:22:48

标签: iphone objective-c uiviewcontroller

我有一个应用程序,如果它在某个视图中退出,我想要将该视图准确地恢复到用户离开的位置。

我的applicationDidFinishLaunching目前非常简单:

- (void)applicationDidFinishLaunching:(UIApplication *)application {

    // Override point for customization after app launch    
    [window addSubview:tabBarController.view];
 [window makeKeyAndVisible];

}

如何恢复必须堆叠在标签栏控制器中的3个视图控制器序列?

通常,用户与应用程序进行这些交互以进入我想要恢复的视图:

  1. App弹出;
  2. 第一个选项卡是一个表视图(因此它是我必须恢复的第一个视图控制器),用户选择一行;
  3. 出现的视图是另一个表视图(因此它是我必须恢复的第二个视图控制器),用户在此视图的顶部栏中点击一个+;
  4. 最后一个视图控制器以模态方式显示(因此它是我必须恢复的第三个视图控制器)。
  5. 我尝试了这个post的答案,但我的标签栏控制器一团糟(帖子没有使用标签栏控制器,我是iPhone开发的初学者,所以我的尝试不是很成功。)

    提前致谢。

1 个答案:

答案 0 :(得分:1)

这听起来并不像是在描述典型的UITabBarController使用模式,在这些模式中,您有一系列始终可用的选项卡,并为应用程序提供不同的使用模式。通常重新创建标签栏控制器的状态只是像往常一样实例化标签并选择当前标签。

提供更多细节级别的一系列屏幕是UINavigationController的正常使用模式。

在担心如何恢复之前,您可能想要调查一下是否有一个理智的设计。

也就是说,您可以在applicationDidFinishLaunching中重新创建整个结构,也可以为每个类提供重新创建下游视图控制器和视图的逻辑。我会采取后一种方法。