簡體   English   中英

iOS SwiftUI - NavigationView NavigationLink:使用自定義按鈕關閉視圖

[英]iOS SwiftUI - NavigationView NavigationLink: Close view with custom Button

我是 iOS 開發的新手,認為它很棒,但我絕對討厭 NavigationView/NavigationLink 的一切,即使在 Android 中也很難找到這樣的白痴!

在 ContentView 我有:

NavigationLink(destination: Login().navigationBarBackButtonHidden(true), label: {
    Image(systemName: "person.circle.fill")
        .resizable()
        .aspectRatio(contentMode: .fit).frame(width: 32)
        .foregroundColor(Color(UIColor(named: "IconColor")!))
})

和登錄():

struct Login: View {
    @AppStorage("userid") var userid: Int = 0

    var body: some View{
        
        VStack{
            
            HStack{
                
                Spacer()
                
                Button(action: {
                    // Close the view!!???
 
                }) {
                    Image(systemName: "xmark")
                        .resizable()
                        
                        .frame(width: 18, height: 18)
                        .foregroundColor(Color(UIColor(named: "IconColor")!))
                }
                .padding(.top, 12.0)
                .padding(.trailing, 16.0)
            }
                         
            Spacer()
            
        }
        
    }
}

我怎樣才能關閉單擊按鈕的視圖?

您將使用presentationMode.wrappedValue.dismiss() 看看這個以獲取更多信息。 以下是您將如何使用它:

struct Login: View {
    @AppStorage("userid") var userid: Int = 0
//Doesn't require anything to be passed in.
  @Environment(\.presentationMode) var presentationMode
    var body: some View{
        
        VStack{
            
            HStack{
                
                Spacer()
                
                Button(action: {
//Part where view is dismissed
                   presentationMode.wrappedValue.dismiss()
 
                }) {
                    Image(systemName: "xmark")
                        .resizable()
                        
                        .frame(width: 18, height: 18)
                        .foregroundColor(Color(UIColor(named: "IconColor")!))
                }
                .padding(.top, 12.0)
                .padding(.trailing, 16.0)
            }
                         
            Spacer()
            
        }
        
    }
}

您仍然會以同樣的方式調用它,使用上面原始問題中的NavigationLink

查看此答案以獲取有關解雇的更多信息。 另外,請注意,這將禁用默認的向后滑動行為,如果您想重新啟用它,請查看此處

暫無
暫無

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

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