You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift纯代码开发添加导航栏标题的问题求助

解决纯代码开发中导航栏标题不显示的问题

你的核心问题是当前ViewController没有被嵌入到UINavigationController中,导航栏本身都没被创建,自然看不到标题。按以下步骤修改即可:


1. 将ViewController嵌入导航控制器

根据你的iOS版本,修改应用入口文件:

针对iOS 13+(使用SceneDelegate)

打开SceneDelegate.swift,替换scene(_:willConnectTo:options:)方法:

func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
    guard let windowScene = (scene as? UIWindowScene) else { return }
    let window = UIWindow(windowScene: windowScene)
    
    // 把ViewController包装成导航控制器的根页面
    let rootVC = ViewController()
    let navController = UINavigationController(rootViewController: rootVC)
    
    window.rootViewController = navController
    self.window = window
    window.makeKeyAndVisible()
}

针对iOS 12及以下(使用AppDelegate)

打开AppDelegate.swift,替换application(_:didFinishLaunchingWithOptions:)方法:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    window = UIWindow(frame: UIScreen.main.bounds)
    
    // 把ViewController包装成导航控制器的根页面
    let rootVC = ViewController()
    let navController = UINavigationController(rootViewController: rootVC)
    
    window?.rootViewController = navController
    window?.makeKeyAndVisible()
    return true
}

2. 设置导航栏标题

在你的ViewController的viewDidLoad方法中添加标题设置:

override func viewDidLoad() {
    super.viewDidLoad()
    
    // 添加这行设置导航栏标题
    title = "随机图片"
    
    // 原有的代码保持不变
    view.backgroundColor = .systemRed
    view.addSubview(imageView)
    imageView.frame = CGRect(
        x: 0,
        y:0,
        width: 300,
        height: 300
    )
    imageView.center = view.center
    
    view.addSubview(button)
    getRandomPhoto()
    button.addTarget(self, action: #selector(didTapButton), for: UIControl.Event.touchUpInside)
}

3. 确认Info.plist配置

确保你的Info.plist中已经移除了Main storyboard file base name这个键值对,或者将其值设为空,避免系统尝试加载已删除的Storyboard。


可选:自定义导航栏样式

如果需要调整导航栏外观,可以在ViewController的viewDidLoad中添加:

// 设置导航栏背景色
navigationController?.navigationBar.backgroundColor = .systemBlue
// 设置标题文字颜色
navigationController?.navigationBar.titleTextAttributes = [.foregroundColor: UIColor.white]

内容的提问来源于stack exchange,提问作者akimPeaceYo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 00:09:23