gpt4 book ai didi

ios - 在 xib View 文件之间导航

转载 作者:行者123 更新时间:2023-12-01 16:05:08 27 4
gpt4 key购买 nike

我正在做一个项目,该项目没有 Storyboard ,它只有一个带有自己的类的 xib 文件的 View ,问题是:如何在这些 xib View 之间导航?
还是可以将它们嵌入导航 Controller 中?
我尝试了这段代码,但什么也没发生?

let NC = UINavigationController()

@IBAction func showUserProfile(_ sender: Any) {

print("show Profile")
let vc = UserProfile(
nibName: "UserProfile",
bundle: nil)
NC.pushViewController(vc,
animated: true )
}
这是在应用程序委托(delegate)中
 let mainView = BlockListViewController(nibName: "BlockListViewController", bundle: nil)
window?.addSubview(mainView)
let navigationControll = UINavigationController(rootViewController: mainView)
self.window?.rootViewController = navigationControll
self.window?.makeKeyAndVisible()
我尝试在事件发生时使用它进行导航
    self.navigationController?.pushViewController(UserProfile(), animated: true)

最佳答案

您无法在 UIView 的实例之间导航
根据苹果UINavigationController

A container view controller that defines a stack-based scheme for navigating hierarchical content.

A navigation controller is a container view controller that managesone or more child view controllers


所以基本上是一堆 UIViewController , 定义为 [UIViewController]documentation 中了解更多信息
您可以做的是添加每个 UIViewUIViewController并通过它简单地导航。
根据您的评论,您可以将它们预定义到 VC 实例中并创建一个 UINavigationController使用您的初始值,然后只需推送到所需的 UIViewController来自 UINavigationController 评论更新
正如我从您在主视图中的评论中得到的那样,您已经定义了 UINavigationController只需替换 NC.pushViewController(vc,animated: true )self.navigationController.pushViewController(vc, animated: true )问题是您正在创建新的 UINavigationController虽然您已经嵌入了第一个
评论更新:
如果您使用带有场景委托(delegate)的 iOS 13+,请在 willConnectTo 内使用此功能
   guard let scene = (scene as? UIWindowScene) else { return }
// Instantiate UIWindow with scene
let window = UIWindow(windowScene: scene)
// Assign window to SceneDelegate window property
self.window = window
// Set initial view controller from Main storyboard as root view controller of UIWindow
let mainView = BlockListViewController(nibName: "BlockListViewController", bundle: nil)
let navigationControll = UINavigationController(rootViewController: mainView)

self.window?.rootViewController = navigationControll
// Present window to screen
self.window?.makeKeyAndVisible()
并调用 self.navigationController.push像这样
@IBAction func didTap(_ sender: UIButton)  {
let secondView = secondVC(nibName: "secondVC", bundle: nil)
self.navigationController?.pushViewController(secondView, animated: true)
}

关于ios - 在 xib View 文件之间导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63783641/

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