【问题标题】:Creating an View without the navigation Item bar in Xcode在 Xcode 中创建没有导航项栏的视图
【发布时间】:2014-09-27 19:22:43
【问题描述】:

我正在尝试使用 Xcode 6 Beta 4 和 Swift 从 ViewController (loginScreen) 连接一个新的空 View(homeScreen)。一个按钮触发到 homeScreen 视图的 segue。问题是当我添加 segue 时,我的空白/空 homeScreen 视图会神奇地在视图顶部获得一个导航项栏。

你可以看到没有 segue 我的 homeScreen View 它是空的:

转场之后是这样的:

如您所见,Xcode 在顶部(灰色矩形)插入了导航项栏。我想知道如何摆脱它,或者如何创建一个空的 View,即使在为其分配了 segue 后仍然是空的。

非常感谢您的帮助!

干杯!


更新:我的目标是创建一个类似于 Facebook 在其 iOS 应用程序中实现的导航栏。顶部有搜索栏,也许还有更多图标。有人知道该怎么做吗?我试图通过选择我的视图控制器并在属性检查器中将“顶部栏”属性设置为无来隐藏导航栏,但它不起作用。有什么建议吗?

再次感谢。

【问题讨论】:

    标签: cocoa-touch view uinavigationcontroller swift xcode6


    【解决方案1】:

    loginScreen 是否在 UINavigationController 中?如果是,则新显示的视图控制器 (homeScreen) 应该也在导航控制器中,因此默认情况下它有一个导航栏。

    您可以根据需要将其隐藏,但您必须找到另一种在导航控制器中导航的方式。

    否则,您可以以模态方式呈现 homeScreen,将 segue 的类型更改为“以模态方式呈现”。

    有关视图控制器演示的更多详细信息,请参阅this document 以及 iOS8 中的一些更新(WWDC 会议:iOS8 中的视图控制器改进)。

    编辑:为了实现类似 FB 的导航栏,我将自定义 UINavigationController 栏:

    • 阅读AppCoda tutorial 了解自定义栏
    • 要添加搜索栏,请使用如下代码:
    let searchBar = UISearchBar()
    ... 
    self.navigationItem.titleView = self.searchBar
    

    【讨论】:

    • 我不知道 loginScreen 是否在 UINavigationController 中。我的 loginScreen 连接到 UIAvigationController,然后它与 homeScreen UIViewController 有一个 segue。这是否意味着它在 UINavigationController 中?另外,请阅读我帖子的更新,因为我明确解释了我想要实现的目标。也许你对我有其他建议?感谢您的宝贵时间!
    • 是的,这意味着您肯定在 UINavigationController 中。请参阅我对导航栏的编辑。
    • 我的故事板中有自己的 UISearchBar。我的 homeScreenViewController 中有一个插座(homeSearchBar),我还在我的班级中继承了 UISearchBarDelegate。话虽如此,我不得不说我不知道​​如何设置它。您是否声明了 titleView (在编辑的最后一行中使用)?还是您正在访问的财产?我知道我需要使用这行代码: self.navigationItem.titleView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"appcoda-logo.png"]];而不是设置图像,我应该设置我的 UISearchBar。有什么建议吗?感谢您的宝贵时间!
    【解决方案2】:

    这是因为 segue 是来自已包含在 Navigation 控制器中的 View 控制器的“推送”segue(“显示(例如推送)”)。因此,它被放入此 Navigation Controller 的视图堆栈中,因此接收到一个导航栏。

    如果您不想要导航栏,请使用模态转场(“Present modalally”)或自定义转场。

    如果您需要不同的导航栏(未链接到第一个导航控制器),也是如此。您可以完美地拥有通向 UIViewController 的模态 segue,该 UIViewController 嵌入在其 OWN 导航控制器中(或只有一个导航栏)。查看菜单:“编辑/嵌入/导航控制器”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-11
      相关资源
      最近更新 更多