简体   繁体   English

如何在 XCode 中生成 iOS 13 SwiftUI 项目?

[英]How to generate iOS 13 SwiftUI project in XCode?

So currently in XCode 13, when I create the project for the first time, xcode generates project structure for iOS 14.0+.所以目前在 XCode 13 中,当我第一次创建项目时,xcode 会为 iOS 14.0+ 生成项目结构。

在此处输入图像描述

I am new to iOS and I want to create a project to target iOS 13.0+.我是 iOS 新手,我想创建一个针对 iOS 13.0+ 的项目。 How do I tell XCode to generate project template for iOS 13.0+?如何告诉 XCode 为 iOS 13.0+ 生成项目模板?

Add this in a .swift file将此添加到.swift文件中

import UIKit
import SwiftUI

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.
        return true
    }
    
    
    // MARK: UISceneSession Lifecycle
    
    func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
        // Called when a new scene session is being created.
        // Use this method to select a configuration to create the new scene with.
        return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role)
    }
    
    func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set<UISceneSession>) {
        // Called when the user discards a scene session.
        // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions.
        // Use this method to release any resources that were specific to the discarded scenes, as they will not return.
    }
}

class SceneDelegate: UIResponder, UIWindowSceneDelegate {
    
    var window: UIWindow?
    
    
    func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
        // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`.
        // If using a storyboard, the `window` property will automatically be initialized and attached to the scene.
        // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead).
        
        // Create the SwiftUI view that provides the window contents.
        let contentView = ContentView()
        
        // Use a UIHostingController as window root view controller.
        if let windowScene = scene as? UIWindowScene {
            let window = UIWindow(windowScene: windowScene)
            window.rootViewController = UIHostingController(rootView: contentView)
            self.window = window
            window.makeKeyAndVisible()
        }
    }
    
    func sceneDidDisconnect(_ scene: UIScene) {
        // Called as the scene is being released by the system.
        // This occurs shortly after the scene enters the background, or when its session is discarded.
        // Release any resources associated with this scene that can be re-created the next time the scene connects.
        // The scene may re-connect later, as its session was not neccessarily discarded (see `application:didDiscardSceneSessions` instead).
    }
    
    func sceneDidBecomeActive(_ scene: UIScene) {
        // Called when the scene has moved from an inactive state to an active state.
        // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive.            
    }
    
    func sceneWillResignActive(_ scene: UIScene) {
        // Called when the scene will move from an active state to an inactive state.
        // This may occur due to temporary interruptions (ex. an incoming phone call).
        
    }
    
    func sceneWillEnterForeground(_ scene: UIScene) {
        // Called as the scene transitions from the background to the foreground.
        // Use this method to undo the changes made on entering the background.
    }
    
    func sceneDidEnterBackground(_ scene: UIScene) {
        // Called as the scene transitions from the foreground to the background.
        // Use this method to save data, release shared resources, and store enough scene-specific state information
        // to restore the scene back to its current state.
    }
    
    
}

Then Change the Application Scene Manifest entry in the Info.plist然后更改Info.plistApplication Scene Manifest条目

在此处输入图片说明

Make sure your remove / comment out the @main and the app starts with the ContentView确保您删除/注释掉@main并且应用程序以ContentView开头

I have achieved creating an iOS 13 compatible SwiftUI project with the following approach.我已经通过以下方法创建了一个兼容 iOS 13 的 SwiftUI 项目。 This has one block for iOS 13 and another block for iOS 14+这有一个用于 iOS 13 的块和另一个用于 iOS 14+ 的块

Step 0: Create a SwiftUI project with XCode<\/strong>第 0 步:使用 XCode 创建一个 SwiftUI 项目<\/strong>

This will have a main swift file and a ContentView.swift<\/code> .这将有一个主 swift 文件和一个ContentView.swift<\/code> 。

// ContentView.swift

import SwiftUI

struct ContentView: View {
    var body: some View {
        Text("Hello")
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何在 Xcode 11 中没有 storyboard &gt;= iOS 13 的情况下启动新项目? - How to launch new project without a storyboard >= iOS 13 in Xcode 11? 如何解决 SwiftUI 中的预览错误? [X代码 13] - How to solve preview bug in SwiftUI? [XCode 13] 如何使用Cmake为IOS生成静态库的xcode项目? - How to generate the xcode project of static libs for IOS using Cmake? 从iOS App生成Xcode项目 - Generate Xcode Project from iOS App SwiftUI:在尝试构建到 iOS 13 和 iOS 14 时使用 if #available 时出错 - SwiftUI: Error while using if #available while trying to build to iOS 13 and iOS 14 in Xcode 12 beta 2 有没有办法在同一个 iOS Xcode 项目中使用故事板和 SwiftUI? - Is there any way to use storyboard and SwiftUI in same iOS Xcode project? 更新至 Xcode 13,尝试在 iOS 而非 macOS 上运行 SwiftUI 应用程序时获得唯一的错误代码 - Updated to Xcode 13, get unique error code when trying to run SwiftUI app on iOS but not macOS Xcode 13 Swiftui 动态改变一个变量的值 - Xcode 13 Swiftui change dynamically value of a variable IOS 构建错误 - Xcode 13 - IOS build errors - Xcode 13 Swift Concurrency 在 Xcode 13.2 中为 iOS 13 宣布 - 他们是如何实现这一目标的? - Swift Concurrency announced for iOS 13 in Xcode 13.2 - how did they achieve this?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM