2

我希望我的应用程序每次完全加载到内存不足时都加载到同一个视图中,因此当应用程序关闭然后再次打开时,它会打开同一个视图(目前它是 UITabBar 中的选项卡之一)。我想看代码,而不仅仅是关于如何做到这一点的描述,因为我在 iOS 开发方面不是很有经验。提前致谢!

4

1 回答 1

3

Info.plist例如,如果您的选项卡是主菜单,您总是希望在应用程序运行时加载,那么考虑通过在应用程序文件中添加以下键来不允许多任务处理:

Application does not run in background - (tick the box)
or:
UIApplicationExitsOnSuspend - set to YES (BOOL)

这将确保您的应用程序在按下 home 键并调用该UIApplicationDelegate方法时退出applicationwillterminate:

编辑:

好的,我认为您需要跟踪您的特定选项卡和/或用户所在的选项卡,每当这种情况发生变化时。将此值保存在 NSUserDefaults (plist) 中,并在每次应用程序启动或激活时检查它 - 如果它不在正确的选项卡上,您可以切换到该选项卡。

这是你想要做的吗?

编辑2:

第一步,无论您在标签栏上是否听到按钮按下,都需要获取新选定索引的整数值,就像在此处接受的答案中一样:

以编程方式切换到 TabBar 选项卡视图?

然后,您需要将此值(存储/保存)写入 .plist 文件。首先,将一个新的属性列表文件添加到您的项目中,然后在 Xcode 中打开它并添加一个新行,将其命名为简单SelectedTab的类型,例如使用 Number 类型并说出值 1337。

在您的应用委托中,您需要告诉您的应用您有一个新的 .plist 需要向该应用注册,因此application:didFinishLaunchingWithOptions:您需要执行以下操作:

NSUserDefaults* userPreferences = [NSUserDefaults standardUserDefaults];
[userPreferences registerDefaults: [NSDictionary dictionaryWithContentsOfFile: [[NSBundle mainBundle] pathForResource: @"myNewFile" ofType: @"plist"]]];

以下是读取和写入SelectedTabplist 整数的方法:

要获取存储值...

int test = [[NSUserDefaults standardUserDefaults] integerForKey: @"SelectedTab"];

要将新值写入您的密钥...

int newTab = 2;
[[NSUserDefaults standardUserDefaults] setInteger: newTab forKey: @"SelectedTab"];
[[NSUserDefaults standardUserDefaults] synchronize]; // absolutely critical!

您只需要在您的应用程序委托中选择正确的位置来执行此检查,然后告诉您的标签栏加载您想要的标签。

希望这可以帮助!

于 2012-05-28T19:34:34.747 回答