【问题标题】:iPhone: Add a Tab Bar controller programmatically to a navigation controlleriPhone:以编程方式将标签栏控制器添加到导航控制器
【发布时间】:2023-03-24 01:29:01
【问题描述】:

我正在开发一个 iPhone 应用程序,并从基于导航的模板开始。 但现在我想在底部添加一个 Tap Bar 控制器,我想在不使用 Interface Builder 的情况下做到这一点。谁能告诉我该怎么做? 提前致谢!

【问题讨论】:

    标签: objective-c uinavigationcontroller iphone


    【解决方案1】:

    框架不支持此功能。

    标签栏控制器只能按如下方式创建:

    • 直接在应用程序的主窗口中。
    • 作为拆分视图界面中的两个根视图之一。 (仅限 iPad)
    • 以模态方式呈现它以显示一些需要其自己的基于模态组织的数据。
    • 从弹出框显示它。 (仅限 iPad)

    换句话说,标签栏控制器不能被推送到导航控制器上。

    更多信息在这里:

    http://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/TabBarControllers/TabBarControllers.html#//apple_ref/doc/uid/TP40007457-CH102-SW1

    【讨论】:

    • 标签栏控制器可以推送到导航控制器上。我这样做了。好吧,视图至少可以。
    • 框架不支持。如果你不关心什么支持什么不支持,你可以做到,但你迟早会遇到问题。
    【解决方案2】:

    如果您询问如何从导航控制器开始,然后允许用户导航到带有标签栏的视图,我在 iPad 应用程序中正是这样做的。如果您有兴趣了解我的应用程序如何使用标签栏,请访问我的个人资料中列出的网站。

    不过,我使用 Interface Builder 来完成它。在 Interface Builder 中,我创建了一种主视图,其中包含底部的标签栏控件和上方的“内容”UIView。当用户在视图中切换时,“内容”视图以编程方式分配给用户感兴趣的视图。

    我想你也可以在没有 IB 的情况下完成它。只需使用以下代码:

    UITabBar *aTabBar = [UITabBar alloc] init];
    [[self yourView] addSubview:aTabBar];
    

    当然,您会想要创建标签栏项目并将视图控制器分配给每个项目。您可能还需要调整选项卡栏控件的布局参数,使其位于视图的底部。

    【讨论】:

    • UITabBar *aTabBar = [[UITabBar alloc] init]; [self.view addSubview:aTabBar];
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多