ios - 使用 UINavigationController 和 UINavigationBar 的区别

标签 ios swift

最近开始学习ios开发。我通过嵌入 UINavigationController 创建了一个项目,因为我需要一个标题栏。但是我可以通过使用对象库中的 UINavigationBar 来实现相同的目的。

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

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

谢谢。

最佳答案

NavigationController 自动处理它自己的 UINavigationBar 并且还处理您的 viewController 的导航堆栈,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,或者您可以在没有 segue 的情况下弹出和推送 viewController

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

相关文章:

objective-c - 如何从 obj-c/ios 中的堆栈跟踪获取源代码行

ios - Xcode 或 Core Animation 中的阿拉伯风格页面翻转/ curl

iphone - 任何 iOS block 的标识

ios - 如何更改 Objective-C 中的 CBAdvertisementDataLocalNameKey 值?

ios - 如何禁用 WKWebView 中的自动灰色选择?

ios - 线程运行后快速更改线程 qualityOfService/priority

ios - UIImage 遍历像素非常低效?

ios - 触摸开始错误;我触摸屏幕的任何地方游戏都会崩溃

swift - Sprite-Kit 开始出现触摸错误

iOS Delegate 未设置并返回 nil (Swift)