我正在尝试NavBar使用一些可选的构建自定义Views,例如搜索栏(但仅当视图需要显示它时)。
基本上,我需要在视图中传递一些@State属性@Binding。但我也需要它们作为Optional参数。
下面是一个例子:
struct NavBar: View {
var isSearchable: Bool?
@Binding var searchTxt: String
@Binding var searchIsOn: Bool
var navBarTitle: String
var navBarAction: (() -> Void)?
var navBarImage: String?
init(navBarTitle: String, navBarAction: (() -> Void)? = nil, navBarImage: String? = nil, isSearchable: Bool? = false, searchTxt: (Binding<String>)?, searchIsOn : (Binding<Bool>)?) {
self.navBarTitle = navBarTitle
if(navBarAction != nil) {
self.navBarAction = navBarAction!
}
if(navBarImage != nil) {
self.navBarImage = navBarImage!
} …Run Code Online (Sandbox Code Playgroud)