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

SwiftUI应用在模拟器运行后未显示于主屏幕的原因排查

问题分析与可能原因

你的SwiftUI代码本身逻辑没有明显导致应用不在主屏幕的问题,出现这种情况大概率是模拟器或Xcode配置层面的问题,以下是几个常见原因:

  • 主屏幕页面/文件夹遗漏:模拟器主屏幕可能有多个页面,或者应用被自动归类到某个文件夹里,滑动主屏幕或检查所有文件夹找找看。
  • 模拟器缓存或状态异常:模拟器的缓存可能导致应用安装状态异常,尝试重置模拟器:点击模拟器顶部菜单 Device > Erase All Content and Settings,清除后重新运行项目。
  • 应用图标/显示名称配置缺失:检查项目的Info.plist文件,确认是否配置了CFBundleDisplayName(应用显示名称)和CFBundleIconName(图标资源),如果缺少这些配置,主屏幕上可能看不到应用图标。
  • Xcode安装流程异常:有时候Xcode显示运行成功,但实际应用没正确安装到模拟器。可以通过Xcode菜单 Window > Devices and Simulators,选中当前模拟器,查看「Installed Apps」列表,确认TestApp是否存在;如果不存在,尝试Clean项目(Command+Shift+K)后重新Build并运行。

附用户提供的代码

import SwiftUI

@Observable
class SecurityQuestions {
    var questions = ["", "", ""]
    var answers = ["", "", ""]
}

struct SecurityQuestionsView: View {
    @Bindable var securityQuestions: SecurityQuestions
    @Binding var path: NavigationPath
    var questionNum: Int
    
    @State private var question = ""
    @State private var answer = ""

    var body: some View {
        Form {
            Section {
                TextField("Question no. \(questionNum)", text: $securityQuestions.questions[questionNum - 1])
            }
            
            Section {
                TextField("Answer", text: $securityQuestions.answers[questionNum - 1])
            }
            
            Section {
                if questionNum < 3 {
                    NavigationLink("Go to question \(questionNum + 1)", value: questionNum)
                    
                } else {
                    NavigationLink(destination: EmptyView()) {
                        Text("Back to Question 1")
                    }
                    // NavigationLink (unlike Button) doesn't have an init
                    // that provides a closure to execute an action.
                    // Below is a hack to introduce a closure to execute
                    // an action,i.e., generic Swift Code that doesn't
                    // return a View.
                    /*
                     https://stackoverflow.com/questions/57666620/is-it-possible-for-a-navigationlink-to-perform-an-action-in-addition-to-navigati
                    */
                    .gesture(TapGesture().onEnded {
                        path.removeLast(path.count)
                    })
                }
            }
            .font(.title)
        }
        .navigationTitle("Question \(questionNum)")
        .navigationDestination(for: Int.self) { qNum in
            SecurityQuestionsView(
                securityQuestions: securityQuestions,
                path: $path,
                questionNum: qNum + 1)
        }
    }
}

struct ContentView: View {
    @State private var path = NavigationPath()
    @State private var securityQuestions = SecurityQuestions()
    
    var body: some View {
        NavigationStack(path: $path) {
            SecurityQuestionsView(
                securityQuestions: securityQuestions,
                path: $path,
                questionNum: 1)
        }
    }
}

#Preview {
    ContentView()
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 22:33:09