Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios SwiftUI在后退按钮上显示导航栏标题,但不在上一视图中显示_Ios_Swift_Swiftui - Fatal编程技术网

Ios SwiftUI在后退按钮上显示导航栏标题,但不在上一视图中显示

Ios SwiftUI在后退按钮上显示导航栏标题,但不在上一视图中显示,ios,swift,swiftui,Ios,Swift,Swiftui,我有两种观点,一种通向另一种。我希望第二个视图使用第一个视图的标题作为后退按钮,它应该是:“您还需要为目标视图创建自定义后退按钮,并且您不应该为导航链接设置导航标题,这就是为什么您无法正确隐藏“View1” 检查下面的代码 import SwiftUI struct Test: View { @State var isLinkActive = false var body: some View { NavigationView {

我有两种观点,一种通向另一种。我希望第二个视图使用第一个视图的标题作为后退按钮,它应该是:“您还需要为目标视图创建自定义后退按钮,并且您不应该为
导航链接设置导航标题,这就是为什么您无法正确隐藏“View1”

检查下面的代码

import SwiftUI

struct Test: View {
    @State var isLinkActive = false
    
    
    var body: some View {
        NavigationView {
            VStack {
                NavigationLink("go to the second view", destination: SecondView()
                                .navigationBarBackButtonHidden(true)
                                .navigationBarItems(leading: Button(action: {
                                    isLinkActive = false
                                }, label: {
                                    HStack{
                                        Image(systemName: "backward.frame.fill")
                                        Text("View1")
                                    }
                                })) ,
                               isActive: $isLinkActive)
                
            }.navigationBarItems(leading: Button(action: {
                ()
            }, label: {
                Text("custom button")
            }))
        }.navigationViewStyle(StackNavigationViewStyle())
        
        
    }
    
    private func btnPressed() {
        isLinkActive = true
    }
}

struct SecondView: View {

    var body: some View {
        Color.blue
    }
}
您可以尝试将
navigationBar
代码作为可重用组件,因为您可能需要在多个位置执行此操作

输出-:


这是否回答了您的问题?@Asperi但这会隐藏导航栏,因此我的自定义按钮(这是一个navigationBarItem)将不可见?我需要显示此自定义按钮我喜欢这种方法,但不幸的是,它不会导致有系统图标,因此它将与我的应用程序的其余部分不一致。我可能需要搜索正确的资源和文本的正确字体,这已经使它更像是一种解决方法,而不是实际的so粘液
import SwiftUI

struct Test: View {
    @State var isLinkActive = false
    
    
    var body: some View {
        NavigationView {
            VStack {
                NavigationLink("go to the second view", destination: SecondView()
                                .navigationBarBackButtonHidden(true)
                                .navigationBarItems(leading: Button(action: {
                                    isLinkActive = false
                                }, label: {
                                    HStack{
                                        Image(systemName: "backward.frame.fill")
                                        Text("View1")
                                    }
                                })) ,
                               isActive: $isLinkActive)
                
            }.navigationBarItems(leading: Button(action: {
                ()
            }, label: {
                Text("custom button")
            }))
        }.navigationViewStyle(StackNavigationViewStyle())
        
        
    }
    
    private func btnPressed() {
        isLinkActive = true
    }
}

struct SecondView: View {

    var body: some View {
        Color.blue
    }
}