ContentView.swift
// // ContentView.swift // Test // // Created by Cairocoders // import SwiftUI struct ContentView: View { var body: some View { ZStack { NavigationView { VStack { Text("View Portrait mode lock!") .padding() HStack { Image("photo1") .resizable() } .frame(width: 250, height: 400) .cornerRadius(20) } .navigationTitle("Portrait Mode") .navigationBarTitleDisplayMode(.inline) } }.onAppear { UIDevice.current.setValue(UIInterfaceOrientation.portrait.rawValue, forKey: "orientation") // Forcing the rotation to portrait AppDelegate.orientationLock = .portrait // And making sure it stays that way }.onDisappear { AppDelegate.orientationLock = .all // Unlocking the rotation when leaving the view } } } struct ContentView_Previews: PreviewProvider { static var previews: some View { ContentView() } }TestApp.swift
// // TestApp.swift // Test // // Created by Cairocoders // import SwiftUI @main struct TestApp: App { @UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate var body: some Scene { WindowGroup { ContentView() } } } class AppDelegate: NSObject, UIApplicationDelegate { static var orientationLock = UIInterfaceOrientationMask.all //By default you want all your views to rotate freely func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask { return AppDelegate.orientationLock } }