Я новичок в SwiftUI, и я пытаюсь создать эту панель навигации с помощью Xcode 12.4:

Вот моя точка зрения:
struct PreferencesView: View {
var body: some View {
NavigationView {
ZStack {
//Background Color
Color("DosDark")
.edgesIgnoringSafeArea(.all)
Text("Hey.")
//Nav bar styles
.navigationBarTitleDisplayMode(.inline)
.toolbar {
ToolbarItem(placement: .principal) {
VStack {
Text("Preferences")
.navBarTitleDark()
}
}
}
.navigationBarItems(
leading: NavClose(), //<-- This is where the trouble starts
trailing: NavAbout()
)
}
}
}
}
struct NavClose: View {
var body: some View { //<-- Inexplicable error here
Button(action: {
print("Close...")
}){
Image("close-blue")
}
}
}
struct NavAbout: View {
var body: some View {
Button(action: {
print("Show about stuff...")
}) {
Image("about-blue")
}
}
}
Я могу заставить заголовок нормально отображаться, но как только я добавляю бит .navigationBarItems, я постоянно вижу ошибку на моем struct, которую я пытаюсь вытащить:

Когда я пытаюсь поместить Button прямо в .navigationBarItems (без использования внешнего struct), я все еще вижу ошибку в этой строке:
Не удалось произвести диагностику для выражения; пожалуйста, отправьте отчет об ошибке
Я делаю что-то неправильно? Есть ли способ заставить Xcode выдавать мне настоящее сообщение об ошибке?
Прекрасно работает с Xcode 12.1 / iOS 14.1, но
.navigationBarItemsустарел из-за предпочтенияtoolbar, и, вероятно, у вас есть более новая версия, в которой они уже находятся в конфликте.Решение состоит в том, чтобы использовать только панель инструментов с соответствующими местами размещения, например
Большое спасибо за вашу помощь! Я не знал, что
.navigationBarItemsустарел (и скатертью дорога). ???? Похоже, что корень проблемы —Button(). Если я заменю его простоImage("close-blue"), он заработает. В синтаксисе закрытияButtonесть что-то, что ему не нравится. ???? — person Clifton Labrum; 28.01.2021Ах, я нашел проблему. У меня был
typealiasс именемButton, и Xcode подавился им. Ооо! ????????♂️ Еще раз спасибо за вашу помощь! — person Clifton Labrum; 28.01.2021