【问题标题】:Initialize all UIViewControllers in UITabBarController without showing them, using Storyboard - objective c使用 Storyboard 初始化 UITabBarController 中的所有 UIViewControllers 而不显示它们 - 目标 c
【发布时间】:2012-08-25 08:51:13
【问题描述】:

我第一次使用Storyboard,我已经创建了UITabBarController 应用程序。我在UITabBarController 中有 4 个UINavigationControllers。一开始只有第一个 UINavigationController 和 root UIViewController 初始化,但其他 3 只在我选择它们时才初始化。如何初始化它们?我一开始就需要他们每个人的实例。

例如,我需要将数据从第一个UIViewController 设置为第四个,但现在要这样做,我需要先选择它。我在viewDidLoad 方法中的每个UIViewContoller 中都设置了断点,并且仅当我选择此UIViewController 时才启用断点。

有没有办法全部初始化?

【问题讨论】:

    标签: objective-c ios uiviewcontroller uitabbarcontroller storyboard


    【解决方案1】:

    我很确定,一旦您从情节提要加载 UITabBarControllerUINavigationControllers 及其根 UIViewController 就会被实例化。因此,您应该能够向他们发送消息。

    UIViewControllerview 仅在需要时加载,因此 viewDidLoad 方法仅在您选择该选项卡时才会被触发。

    视图控制器的view 也可以在运行时卸载,此时视图不可见且内存不足。

    【讨论】:

    • 我明白了,但是有没有办法在不选择 UIViewController 的情况下初始化视图?
    • 你为什么要这样做?
    • 我需要这样做,因为我在 viewDidLoad 方法中初始化了 NSMutableArrays。我将数据从第一个 UIViewController 放到这个 NSMutableArray。
    • 您应该将来自第一个视图控制器的数据存储在第四个视图控制器的属性中。然后viewDidLoad 方法可以使用该属性中的数据。 - 视图本身由loadView 加载,并且文档明确指出您永远不应该直接调用此方法。此外,视图可能会在以后卸载并重新加载。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多