【问题标题】:using UINavigationBar without UINavigationController使用没有 UINavigationController 的 UINavigationBar
【发布时间】:2012-02-08 06:33:12
【问题描述】:

我想要 UIWebView 顶部的 UINavigationBar,但我想手动控制标题、后退按钮、后退按钮的作用等。换句话说,我不想推送或弹出视图。我只想在用户单击 Web 视图时更改 UINavigationBar 内容。

我要做的是将 UINavigationBar 添加到我的 superView 并使其高 44 像素。由于没有导航项,如何设置标题?如何设置一个假的后退按钮?

我将不胜感激任何指针。我意识到我正在做的事情很奇怪。

谢谢:)

【问题讨论】:

    标签: iphone ios uinavigationbar


    【解决方案1】:

    如果有人感兴趣,答案在 UINavigationBar 的类引用中。

    当您将导航栏用作独立对象时,您是 负责提供其内容。 与其他类型的视图不同, 您不直接将子视图添加到导航栏。相反,您使用 导航项(UINavigationItem 类的一个实例) 指定要显示的按钮或自定义视图。一个导航 item 具有用于指定左侧、右侧和 导航栏的中心并用于指定自定义提示 字符串。

    简而言之,使用 UINavigationItem 并通过 UINavigationBar 上的“pushNavigationItem”应用它。

    我创建了一个名为 StaticNavigationBar 的 UINavigationBar 子类,然后我可以通过在其上放置适当的 UINavigationItem 来加载任何状态。感谢所有回答的人。

    【讨论】:

    • 为什么必须子类化?
    • 你并不真正@David - 事实上,这些天我更喜欢组合而不是继承。
    • 显然使用navigationBar.setItems(items, animated: true) 会导致状态栏颜色消失的某种错误,即使navigationBar.items 的原始值是nil。为答案+1。
    【解决方案2】:

    您可以将该 UINavigationBar 作为一个插座,然后您可以根据需要对其进行操作。因此,您不必参考某人的导航项。在您的视野中,它将是一个独立的(某种)对象。

    【讨论】:

    • 我的 UINavigationBar 在视图上。现在我该调用什么来设置标题?添加后退按钮?
    • UINavigationBar 有一个 backItem 属性。当涉及到标题时,您必须通过导航项属性来完成,该属性也可以作为出口添加到 IB 或 Storyboard 中。导航项具有 title 属性。
    【解决方案3】:

    如果您不希望导航栏保持原样,则必须自己滚动。 如果您对用于推送和弹出项目的内置动画(不要与视图控制器的推送/弹出混淆)到栏没问题,那么您将设置您的 UINavigationBarDelegate 并使用其方法来控制事物的推送/弹出方式等。

    【讨论】:

    • 我喜欢 UINavigationBar 的原生外观。我想知道如何在没有 uinavigationcontroller 的情况下以编程方式设置标题和后退按钮。到目前为止,我只能将它添加到视图中并设置色调。看不到设置标题或添加返回按钮的方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-20
    • 2013-12-24
    相关资源
    最近更新 更多