用户退出时如何保存当前标签栏项目,并在重新启动时重新加载到该项目?

时间:2009-03-28 15:43:50

标签: ios objective-c iphone cocoa cocoa-touch

我想保存当用户退出应用程序时用户所在的当前选项卡,因此我可以在用户重新进入应用程序时突出显示该选项卡加载应用程序。

我假设我在我的app委托中使用以下方法来保存当前标签

- (void)applicationWillTerminate:(UIApplication *)application

但我如何获得对当前标签的访问权限 - 以及重新加载它的最佳方法是什么?

3 个答案:

答案 0 :(得分:5)

在applicationWillTerminate中,将tabbarcontroller的selectedIndex保存为默认值。

  [[NSUserDefaults standardUserDefaults] setInteger:[tabBarController selectedIndex] forKey:@"tabBarIndex"];

然后在启动时,从NSDefaults读取索引,然后设置选项卡。

    setIndex = [[NSUserDefaults standardUserDefaults] objectForKey:@"tabBarIndex"];
    [[NSUserDefaults standardUserDefaults] synchronize];

setIndex是一个NSUInteger。然后在viewDidLoad中设置TabBarController,如下所示:

[tabBarController selectedIndex:setIndex];

这是来自内存,所以你需要尝试一下,但这是一般方法。

干杯,乔丹

答案 1 :(得分:0)

乔丹的回答对我有用,除了selectedIndex是一个属性,而不是一个方法;这样:

tabBarController.selectedIndex = setIndex;

答案 2 :(得分:-2)

UITabBarController有一个属性,它将为您提供当前所选视图控制器的索引;如果您在终止时将其保存到NSUserDefaults并在应用程序再次启动时将其恢复,则会恢复用户的选择。

我故意在这里模糊不清,因为UITabBarController和NSUserDefaults的详细信息都在文档中,您需要在向其他人寻求帮助之前学习阅读。您需要的其他所有内容应该在您的Xcode文档浏览器中,如果您尚未安装文档,则应该在http://developer.apple.com