我希望我的应用每次完全加载到内存不足时都加载到同一个 View 中,所以当应用关闭然后再次打开时,它会打开同一个 View (目前它是 UITabBar 中的选项卡之一) . 我想看代码,而不仅仅是关于如何做到这一点的描述,因为我在 iOS 开发方面不是很有经验。 提前致谢!
如果您的选项卡是主菜单,例如,您总是希望在应用程序运行时加载,那么考虑通过在应用程序的 Info.plist< 中添加以下键来不允许多任务处理
文件:
Application does not run in background - (tick the box)
or:
UIApplicationExitsOnSuspend - set to YES (BOOL)
这将确保您的应用在按下 home 键并调用 UIApplicationDelegate
方法 applicationwillterminate:
时退出。
编辑:
好的,我认为您需要跟踪您的特定标签和/或用户所在的标签,只要这种情况发生变化。将此值保存在 NSUserDefaults (plist) 中,并在每次应用启动或激活时检查它 - 如果它不在正确的选项卡上,您可以切换到该选项卡。
这是你想要做的吗?
编辑 2:
第一步,无论您在哪里监听标签栏上的按钮按下,您都需要获取新选定索引的整数值,就像这里接受的答案一样:
Switching to a TabBar tab view programmatically?
然后,您需要将此值写入(存储/保存)到 .plist 文件中。首先,将一个新的属性列表文件添加到您的项目中,然后在 Xcode 中打开它并添加一个新行,将其命名为 SelectedTab
之类的简单名称,类型为 Number,值为 1337。
在您的应用委托(delegate)中,您需要告诉您的应用您有一个新的 .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"];
要将新值写入您的 key ...
int newTab = 2;
[[NSUserDefaults standardUserDefaults] setInteger: newTab forKey: @"SelectedTab"];
[[NSUserDefaults standardUserDefaults] synchronize]; // absolutely critical!
您只需要在您的应用委托(delegate)中选择正确的位置来执行此检查,然后告诉您的标签栏加载您想要的标签。
希望这会有所帮助!
关于iphone - 每次从同一个 View 加载应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10789566/
欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://jike.in/) | Powered by Discuz! X3.4 |