Я новичок в 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