ios - 使用 UINavigationController 和 UINavigationBar 的区别

原文 标签 ios swift

最近开始学习ios开发。我使用 UINavigationController 做了一个项目通过嵌入它,因为我需要一个标题栏。但是我可以通过使用 UINavigationBar 来达到同样的目的。来自对象库。

我看到的唯一区别是当我使用 UINavigationController 时当我使用 segue 时,我得到一个后退按钮。他们之间还有什么区别吗?在什么情况下使用哪一个?

顺便说一句,为什么另一个NavigationController被添加到我的 Storyboard?它有什么意义?(在我看过的任何视频中都没有人解释过)

谢谢你。

最佳答案

NavigationController自己处理 UINavigationBar自动处理你的 viewControllers 导航堆栈,NavigationController有一个委托(delegate),您可以使用它来了解 viewControllerNavigationStack 中发生的事情等等

使用 NavigationController 的委托(delegate)例如,您可以在以下情况下收到通知:

  • NavigationController 将显示一些 viewController,使用此方法:
    - (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated ;
  • NavigationController 确实显示了一些 viewController,使用此方法:
    - (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated;
    

  • 您也可以使用 NavigationController例如,进入导航堆栈上的特定 viewController,或者您可以在没有 segues 的情况下弹出和推送 viewController

    关于ios - 使用 UINavigationController 和 UINavigationBar 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38103142/

    相关文章:

    ios - GCD 中的并发队列与串行队列

    ios - Tableview圆角未显示在底部

    ios - 如何使用RxSwift使ViewController观察到对ViewModel变量(Variable <..>)的任何更改?

    ios - UITableViewCell不要重复使用

    ios - Xcode 5显示“启动画面丢失”,即使它存在于项目包中

    ios - 如何在 Swift 中获取 UIScrollView 垂直方向?

    如果Button具有buttonStyle,则SwiftUI键盘快捷方式将不起作用

    swift - 使用PDFKit创建PDF文档时出现共享问题

    ios - 如何动态更改按钮的背景

    ios - 使用NSNumberFormatter格式化小数