簡體   English   中英

EmptyView 未在 iOS 15、Xcode 13 中顯示

[英]EmptyView is not showing in iOS 15, Xcode 13

我有嚴重的問題。 我的 Xcode 版本是 13,iOS 版本是 15。

import SwiftUI

struct ContentView: View {
  @State var isGo: Bool = false

  var body: some View {
    ZStack {
      Button(action: {
        self.isGo = true
      }, label: {
        Text("Go EmptyView")
      })

      EmptyView()
        .background(Color.green)
        .frame(width: 100, height: 100)
        .sheet(isPresented: $isGo, onDismiss: nil, content: {
          PopupView()
        })
    }
  }
}

struct PopupView: View {
    var body: some View {
        Rectangle()
            .fill(Color.green)
    }
}

上面的代碼不起作用。 但是,以前的 Xcode 版本或以前的 iOS 版本是該代碼正在運行。 這是iOS的錯誤嗎? 有什么解決辦法嗎?

你很親密,不知道為什么沒有人提供幫助。 您的代碼確實有效,但理論上不正確,您需要將調用.sheet移到ZStack之外並且它可以工作。 但這里有一個更好的方法,沒有所有無用的代碼。

struct ContentView: View {
    @State var showemptyview: Bool = false
    
    var body: some View {
        Button("Go EmptyView") {
            showemptyview.toggle()
        }
        .sheet(isPresented: $showemptyview) {
            EmptyView()
                .background(Color.green)
        }
    }
}

在此處輸入圖像描述

最后在最后一個版本中,您可以直接將幾張紙用於主視圖並且它可以工作。 您不需要使用工作表創建單獨的 EmptyView()

YourMainView()
  .sheet(item: $viewModel) { item in
    // some logic here 
  }
  .sheet(isPresented: $onther_viewModel.showView, content: {
    SomeAnotherView(viewModel: viewModel.getVM())
  })
  .sheet(isPresented: $onther_viewModel2.showView, content: {
    SomeView(viewModel: viewModel.getVM())
  })

將“EmptyView()”替換為“Spacer().frame(height:0)”在 iOS15 和 iOS14 上對我有用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM