我希望我的应用程序每次完全加载内存时都会加载到同一个视图中,因此当应用程序关闭然后再次打开时,它会打开相同的视图(目前它是UITabBar中的一个选项卡) 。 我想看看代码,而不只是关于如何做到这一点的描述,因为我在iOS开发方面不是很有经验。 提前谢谢!
答案 0 :(得分:3)
如果您的选项卡是主菜单,例如,您始终希望在运行应用程序时加载该选项卡,则可以通过在应用程序的Info.plist
文件中添加以下密钥来考虑不允许多任务处理: 击>
Application does not run in background - (tick the box)
or:
UIApplicationExitsOnSuspend - set to YES (BOOL)
这将确保您的应用在按下主页并且调用 UIApplicationDelegate
方法applicationwillterminate:
时退出。
编辑:
好的,我认为无论何时发生变化,您都需要跟踪特定标签和/或用户所在的标签。将此值保存在NSUserDefaults(plist)中,并在每次应用程序启动或变为活动状态时进行检查 - 然后如果该选项卡不正确,则可以切换到该选项卡。
这是你想要做的吗?
编辑2:
第一步,无论您何时听到标签栏上的按钮按下,您都需要获取新选定索引的整数值,如此处接受的答案:
Switching to a TabBar tab view programmatically?
然后,您需要将此值(存储/保存)写入.plist文件。首先,向项目中添加一个新的属性列表文件,然后在Xcode中打开它并添加一个新行,将其称为SelectedTab
之类的简单类型,并且值为1337。
在您的应用委托中,您需要告诉您的应用,您需要在应用中注册新的.plist,因此在application:didFinishLaunchingWithOptions:
中您需要执行以下操作:
NSUserDefaults* userPreferences = [NSUserDefaults standardUserDefaults];
[userPreferences registerDefaults: [NSDictionary dictionaryWithContentsOfFile: [[NSBundle mainBundle] pathForResource: @"myNewFile" ofType: @"plist"]]];
以下是您可以读取和写入SelectedTab
plist整数的方法:
获取储值......
int test = [[NSUserDefaults standardUserDefaults] integerForKey: @"SelectedTab"];
为您的密钥写一个新值......
int newTab = 2;
[[NSUserDefaults standardUserDefaults] setInteger: newTab forKey: @"SelectedTab"];
[[NSUserDefaults standardUserDefaults] synchronize]; // absolutely critical!
您只需在应用代理中选择正确的位置即可执行此检查,然后告诉标签栏加载所需的标签。
希望这有帮助!