SwiftUI -如何添加按钮作为导航标题?

c86crjj0  于 2023-08-02  发布在  Swift
关注(0)|答案(3)|浏览(129)


的数据
有没有可能让导航栏标题像按钮一样可以点击?已尝试.navigationBarTitle(Button(....)),但这不起作用bc按钮不符合字符串协议...

mbjcgjjk

mbjcgjjk1#


以下是一个可能的解决方案

struct ContentView: View {
    
 
    var body: some View {
        NavigationView {
            GeometryReader { geo in
            
                List {
                    
                Text("Have a nice day!")
                Text("Today is sunny")
                
            }.navigationBarTitle(Text(""), displayMode: .inline)
                .navigationBarItems(leading: HStack{
                    
                    Spacer().frame(width: geo.size.width * 0.5)
                    
                    VStack{
                        Text("Title")
                        Button(action: {
                            print("I'm feeling lucky ;)")
                        })
                        {
                            Text("Button")
                        }
                    }
                    
                    Spacer().frame(width: geo.size.width * 0.5)
                })
            }
    }
}

}

字符串

niwlg2el

niwlg2el2#

如前所述in this answer,从iOS 14开始,toolbar视图修饰符可用于在导航栏中放置ToolBarItemToolBarItem可以是符合ToolbarContentprotocol的任何视图。

**注意:**如果您想让工具栏内容代替导航标题显示,请确保将placement参数设置为.principal。下面是一个示例:

.toolbar {
    ToolbarItem(placement: .principal) {
        Button {
            // Your button action here
        } label: {
            // your button label here
            Text("I am a button")
        }
    }
            
}

字符串

rsaldnfx

rsaldnfx3#

不能在SwiftUI导航视图中的NavigationTitle上创建按钮
解决方案:您必须创建自定义导航栏和其他视图

相关问题