【问题标题】:ViewDidLoad not called with UITabbarController未使用 UITabbarController 调用 ViewDidLoad
【发布时间】:2013-08-04 17:33:20
【问题描述】:

我有一个带有第一个视图的应用,然后它在 UITabBarViewController 中显示两个视图。

不幸的是,似乎ViewDidLoad 方法在我的标签栏链接的两个视图中没有被调用。它必须显示一个标题,例如,未完成的动作。

这是一张照片来说明我目前的工作。

【问题讨论】:

    标签: ios uitabbarcontroller viewdidload


    【解决方案1】:

    一些想法:

    1. 你说ViewDidLoad。这是区分大小写的,应该是viewDidLoad。或者这只是问题中的一个错字。

    2. 确保您的子场景具有适当的视图控制器。如果您在 IB 中选择视图控制器,您应该会在身份检查器中看到类似以下内容:

      如果看起来像:

      那么这意味着您可能忽略了指定视图控制器子类。

    3. 从标签栏控制器到子场景有一组奇怪的转场;很难说那里发生了什么或者你为什么这样做,但我会摆脱那些额外的推动因素。而不是那些混乱的segues,它应该看起来像:

    【讨论】:

    • 2.事实上,我创建了另外两个 segue 来使用“prepareForSegue”方法(将数据从 View Controller 传输到 Item 1 和 Item 2),我们必须命名 segue。对于图像中存在的 segue 类型(在选项卡栏控制器和项目 1 和 2 之间),您无法命名 segue,因此,您不能使用“prepareForSegue”。最后,在删除两个 segues 以复制您的图像时,没有任何变化,并且我在 Item1 和 Item2 上没有任何标题。标题以 Item1 的 viewDidLoad 方法中的 self.title=@"Drinks" 方法显示。
    • 1.这只是一个错字问题。它是我的代码中存在的“viewDidLoad”。
    • @GoldXApp 我建议您仔细检查以确保您已在身份检查器中指定了视图控制器子类(请参阅我修改后的答案)。对于标签栏控制器中的prepareForSegue,您可能不应该依赖prepareForSegue,而应该实际编写一个UITabBarController 子类,并处理didSelectViewController 方法。
    • 关于new 2. : 子类名就可以了。这部分没问题,我认为因为我通过 ViewController 和 ViewController 之间的直接链接测试了项目 - Item1(没有标签栏)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多