gpt4 book ai didi

ios - 如何将 NavigationItem 添加到以编程方式创建的 UINavigationController

转载 作者:搜寻专家 更新时间:2023-11-01 06:38:31 24 4
gpt4 key购买 nike

我正在使用此代码以编程方式将 UINavigationController 添加到现有的 UIViewController:

self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
let nav1 = UINavigationController()
let mainView = ReminderController(nibName: nil, bundle: nil)
nav1.viewControllers = [mainView]
self.window!.rootViewController = nav1
self.window?.makeKeyAndVisible()

现在我想向 UINavigationController 管理的 NavigationBar 添加一个标题,但大多数情况下我都会收到此错误:

Cannot call pushNavigationItem:animated: directly on a UINavigationBar managed by a controller

我使用的代码:

let item = UINavigationItem(title: "Reminder")
nav1.navigationBar.pushNavigationItem(item, animated: false)

我试过的任何其他方法都给了我同样的错误。那么如何为 NavController 添加标题呢?

NavBar 现在看起来像这样:

enter image description here

最佳答案

您的 NavigationBar 由 NavigationController 管理,因此您不能将 Item 直接推送到它。相反,您应该在 mainView 上设置 navigationItem,NavigationController 会负责将其推送到栏中

另外,查看 documentation对于 UINavigationController,我认为它可以让您更好地理解 navigationController 的工作原理。

这是来自它:

A navigation controller builds the contents of the navigation bar dynamically using the navigation item objects (instances of the UINavigationItem class) associated with the view controllers on the navigation stack.

关于ios - 如何将 NavigationItem 添加到以编程方式创建的 UINavigationController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38510398/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com