【问题标题】:Set a UITabBarController delegate in a UIStoryboard在 UIStoryboard 中设置 UITabBarController 委托
【发布时间】:2012-04-12 12:19:42
【问题描述】:

我一直在寻找这个,找不到答案。

我正在Interface Builder 中设置UIStoryboard,虽然一切正常,但我似乎无法将UITabBarControllerdelegate 插座连接到UIViewController 的任何插座在UIStoryboard 中,无论他们在UIStoryboard 中的位置如何。我已将UIViewController 设置为.h 文件中的<UITabBarControllerDelegate>,但Interface Builder 不允许我选择UIViewController 作为delegateUITabBarController

有人遇到过这个问题吗?

【问题讨论】:

    标签: iphone uiviewcontroller delegates uitabbarcontroller uistoryboard


    【解决方案1】:

    原来你不能在UIStoryboard中设置delegate是因为你不能保证UIViewControllerUITabBar被加载之前就被加载了。因此,以编程方式设置 delegate(在不同的 UIViewController 中)是实现此目的的唯一方法。

    【讨论】:

    • 我没有找到。不过你绝对可以测试一下。
    【解决方案2】:

    您需要在应用程序委托的application:didFinishLaunchingWithOptions 方法中以编程方式完成:

    _tabBarController = (UITabBarController *)_window.rootViewController; _tabBarController.delegate = self;

    【讨论】:

    • 我知道如何以编程方式完成,为什么我不能在 Interface Builder 中完成?
    • 此答案有效,但假定 rootviewcontroller 当前是您希望为其设置委托的标签栏控制器。如果您在应用程序中有其他视图控制器等,则不一定是这种情况。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-31
    • 2013-08-13
    • 1970-01-01
    • 2020-05-28
    • 2015-04-02
    • 2021-08-29
    • 1970-01-01
    相关资源
    最近更新 更多