小编Eri*_*ino的帖子

UITabBarController 的 iOS 状态恢复不恢复子视图控制器或选定的索引

(这是我第一次在StackOverflow上提问,如有问题请见谅)

我的问题归结为无法正确恢复UITabBarController. 这是一个基于选项卡的应用程序,我没有使用故事板。

我选择了状态恢复。我已经ViewController在各自的init方法中为我的所有自定义s 提供了唯一的恢复标识符和恢复类。

至于UITabBarController,我在创建时为其提供了唯一的恢复标识符。因为我没有给它一个恢复类,所以我在app委托中实现了以下代码:

- (UIViewController *)application:(UIApplication *)application viewControllerWithRestorationIdentifierPath:(NSArray *)identifierComponents coder:(NSCoder *)coder 
{
    UITabBarController *vc = [[UITabBarController alloc] init];

    vc.restorationIdentifier = [identifierComponents lastObject];

    if ([identifierComponents count] == 1) {
        self.window.rootViewController = vc;
    }

    return vc;
}
Run Code Online (Sandbox Code Playgroud)

我在其他app中也用过同样的方法来恢复NavigationControllers的状态,一切都很顺利。但是,当我使用 为这个应用程序执行此操作时TabBarController,应用程序启动时为空TabBarControllerTabBarController已恢复,但不会恢复它的子视图控制器)。

这对我来说并不是一个巨大的冲击,我想只是本质上UITabBarControllers 不会保留对其子视图控制器的引用,而不是用于状态恢复的选定选项卡索引。但是,尽管在网上搜索了很多小时,但我无法获得有关如何保留 a TabBarController(without storyboard)状态的任何说明。任何有关如何做到这一点的帮助将不胜感激。

再次,如果我没有提供足够的细节或不够清楚,我很抱歉。请让我知道您在答案中需要什么,我会提供。我知道我没有提供很多代码,但我真的只需要有关如何在没有故事板的情况下保留基于 Tab 的应用程序状态的说明。它不需要根据我的具体情况量身定制;我将能够自己应用一般过程。

谢谢!

state uitabbarcontroller tabbarcontroller ios swift

5
推荐指数
1
解决办法
1521
查看次数

标签 统计

ios ×1

state ×1

swift ×1

tabbarcontroller ×1

uitabbarcontroller ×1