【问题标题】:Load app from the same view every time每次从同一视图加载应用程序
【发布时间】:2012-05-28 19:28:37
【问题描述】:

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

【问题讨论】:

    标签: iphone objective-c ios xcode uitabbar


    【解决方案1】:

    如果您的选项卡是主菜单,例如,您总是希望在应用运行时加载,那么考虑通过在应用的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。

    在您的应用委托中,您需要告诉您的应用您有一个新的 .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!
    

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

    希望这会有所帮助!

    【讨论】:

    • 不幸的是,事实并非如此。我希望我的应用程序支持多任务处理,并且我还希望它加载特定的视图,以某种方式弹出它。而且这个选项卡不是主视图,不是初始视图控制器。
    • 是的,没错!但我不太清楚应该在哪里编写代码来加载特定视图,以及这段代码的外观。
    • 这看起来棒极了!非常感谢您帮助我!
    • 随时向我发布进度:) 乐于提供帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-04
    • 1970-01-01
    相关资源
    最近更新 更多