【问题标题】:UITabBar+UITableviewController in navigation based applications基于导航的应用程序中的 UITabBar+UITableviewController
【发布时间】:2010-09-21 15:14:09
【问题描述】:

我正在尝试将 Rootviewcontroller.xib 上的 UITabBar 放到基于导航的应用程序中。我知道我们为 Tableviews 使用了基于导航的应用程序,默认情况下,这些 .xib 包含一个 tableview。我试图在 rootview 的底部放置一个 UITabBar,但它没有设置在那里。

我看到如果我们使用基于视图的应用程序或基于窗口的应用程序,我们可以将 UITabBar 和 UITableView 安排在同一个视图上。这里我想知道的是:

1) 如果可以的话,我们能否在基于导航的应用程序中放置一个 UITabBar?

2) 如果我们从根视图转移到其他详细视图,我希望 UITabBar 出现在所有其他视图上,谁能告诉我我该怎么做。

谢谢,

【问题讨论】:

    标签: iphone uitableview uitabbar


    【解决方案1】:

    这就是您的 Xib 的外观。 标签栏控制器是父控制器.. 图像中显示的导航控制器,即“First”将仅用于第一个 Tab .. 如果您需要“第二个”选项卡的导航控制器,则必须再添加一个导航控制器。

    按照图片中显示的顺序添加带有导航控制器的 Tabbar 控制器。

    【讨论】:

    • 是的,我正在使用 XIB,但最初我不知道如何进行操作。后来我使用基于 TabBarController 的应用程序创建了一个类,我无法理解下一步如何进行。
    • 您使用的是哪个模板..??即标签栏应用程序或其他东西?
    • 我正在使用标签栏应用程序模板。
    • 其中一种方法是.. 在 MainWindow.Xib 上拖动 Navigation 控制器.. 2. 删除视图控制器让我们说(第一个视图控制器).. 通过单击前面的三角形打开 navigationController导航控制器的 3. 在 navigationController.. 中选择视图控制器.. 然后将 Identity 检查器中的类属性更改为 firstViewController 4. 将 tabBar 项目名称更改为 First.. DONE.
    • 对不起,我没听懂你说的。只是盲目地按照上面写的步骤,但在第一步本身我无法将navigationcrntroller放在mainwindow.xib上.
    【解决方案2】:

    如果我没看错,我认为你的想法是错误的。

    根据我正在阅读的内容,您正在尝试拥有:

    UINavigationController -> "Tab Bar Controller (作为栈的根)" -> UITableViewController (作为 Tab Bar Controller 的选中视图)

    然后,每当用户选择表格中的一个单元格时,您就会将一个新的视图视图推送到 UINavigationController 中,同时保持标签栏显示。

    如果这是正确的,那么解决方案就是重新设计您的视图控制器。

    您想要的是一个 UITabBarController -> UINavigationController(作为所选 UITabBarItem 的视图),它为您的主视图保存一个 UITableViewController(或带有 UITableView 的 UIViewController)。

    这样,每当您在表格中选择一个项目时,您都会将其推送到父 UINavigationController 堆栈中,并且底部的 UITabBar 将保留。

    如果您需要示例,我也很乐意尝试并提供帮助。

    【讨论】:

    • 嗨,丹,非常感谢。我希望我的应用程序以与您编写的方式相同的方式工作。如果您有任何此类示例,请与我分享。
    • Dan,我有一个问题,所以为了在创建项目时完成,我们必须选择基于 TabBarController 的应用程序的权利。这里还有一个问题是如何将标签栏划分为所需的单元格。
    • 最好(也是最简单)的方法是从 Xcode 中的模板创建一个 Tab Bar Controller;然后在 Interface Builder 中,您可以添加选项卡栏项并使它们成为 UINavigationControllers(您不必担心 UINavigationController 的子类化,只需确保您的 UITableViewController 具有堆栈的根)。我不是最好的 Interface Builder,因为我在 xcode 中构建了我的大多数视图控制器,但是 Cocoa Is My Girlfriend 有一个很好的教程来说明如何做到这一点。 cimgf.com/2009/06/25/…
    猜你喜欢
    • 2010-12-21
    • 1970-01-01
    • 2011-07-02
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多