Ios 如何全屏显示SwiftUI子视图?
请看屏幕截图: 我将“顶部导航栏”标记为红色,我想删除它,因为有一个未使用的顶部导航栏 您必须知道,我使用故事板编写代码,但此特定页面包含SwiftUI视图的子视图 这是SwiftUI内容视图: 这是UIViewController,它保存着SwiftUI子视图:Ios 如何全屏显示SwiftUI子视图?,ios,swift,swiftui,uikit,Ios,Swift,Swiftui,Uikit,请看屏幕截图: 我将“顶部导航栏”标记为红色,我想删除它,因为有一个未使用的顶部导航栏 您必须知道,我使用故事板编写代码,但此特定页面包含SwiftUI视图的子视图 这是SwiftUI内容视图: 这是UIViewController,它保存着SwiftUI子视图: import UIKit import SwiftUI class StartViewController: UIViewController { @IBOutlet weak var btn: UIButton!
import UIKit
import SwiftUI
class StartViewController: UIViewController {
@IBOutlet weak var btn: UIButton!
@IBOutlet weak var container: UIView!
let contentView = UIHostingController(rootView: ContentView())
override func viewDidLoad() {
super.viewDidLoad()
configureBackgroundGradient()
addChild(contentView)
view.addSubview(contentView.view)
setupContraints()
}
fileprivate func setupContraints(){
contentView.view.translatesAutoresizingMaskIntoConstraints = false
contentView.view.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
contentView.view.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
contentView.view.leftAnchor.constraint(equalTo: view.leftAnchor).isActive = true
contentView.view.rightAnchor.constraint(equalTo: view.rightAnchor).isActive = true
}
private func configureBackgroundGradient() {
let backgroundGray = UIColor(red: 244 / 255, green: 247 / 255, blue: 250 / 255, alpha: 1)
let gradientLayer = CAGradientLayer()
gradientLayer.colors = [UIColor.white.cgColor, backgroundGray.cgColor]
gradientLayer.frame = view.bounds
view.layer.insertSublayer(gradientLayer, at: 0) //Background Color
}
}
有人能帮忙吗?:)
谢谢大家!!请随时问我更多的截图或代码 您可以使用SwiftUI view Modifire fullScreenCover全屏显示视图 让我们使用简单的FullScreenModalView结构,它可以自动关闭,然后在按下另一个按钮时从ContentView中显示它:
struct FullScreenModalView: View {
@Environment(\.presentationMode) var presentationMode
var body: some View {
Button("Dismiss Modal") {
presentationMode.wrappedValue.dismiss()
}
}
}
下面是ContentView的代码-
struct ContentView: View {
@State private var isPresented = false
var body: some View {
Button("Present!") {
isPresented.toggle()
}
.fullScreenCover(isPresented: $isPresented, content: FullScreenModalView.init)
}
}
很乐意帮忙
谢谢。仅链接答案是不允许的。如果链接中有相关代码,请将其张贴在答案中。随着时间的推移,链接变得不活跃,答案变得过时。
struct ContentView: View {
@State private var isPresented = false
var body: some View {
Button("Present!") {
isPresented.toggle()
}
.fullScreenCover(isPresented: $isPresented, content: FullScreenModalView.init)
}
}