2012-05-28 189 views
2

我希望我的应用程序在每次完全加载内存时都加载到相同视图中,因此当应用程序关闭然后再次打开时,它会打开相同的视图(当前它是UITabBar中的一个选项卡)。 我想查看代码,而不仅仅是描述如何执行此操作,因为我在iOS开发方面经验不足。 在此先感谢!每次从相同视图加载应用程序

回答

3

如果你的标签是主菜单,例如,你总是希望被加载运行应用程序时,再考虑不是由您的应用程序的 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,其类型为数字并且值为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! 

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

希望这会有所帮助!

+0

不幸的是,事实并非如此。我希望我的应用支持多任​​务处理,并且我也希望它能加载特定的视图,以某种方式弹出它。此选项卡不是主视图,而不是初始视图控制器。 –

+0

编辑我的帖子。 – Luke

+0

是的,没错!但是我不明白应该在哪里编写代码来加载特定的视图,以及代码的外观如何。 –

相关问题