Я строю приложение с использованием NavigationPlitView, при предварительном просмотре на Mac я могу просто использовать список (выбор: $ выбрал) , чтобы выделиться элемент по умолчанию. Заполнена ли заполненная панель правильного содержания или детали, не является проблемой, потому что я всегда могу установить по умолчанию вручную. < /P>
При перемещении на ipados xcode постоянно бросает ошибки, потому что он считается устройством iOS, где эта опция недоступна.
Код: Выделить всё
struct SidebarView: View {
@State var selected: Int = 0
var body: some View {
#if os(macOS)
List(selection: $page) {
NavigationLink {
MyPrimaryView()
} label: {
Label("Primary View", systemImage: "pencil.and.outline")
}
.tag(0)
NavigationLink {
Text("More!")
} label: {
Label("Secondary View", systemImage: "plus")
}
.tag(1)
}
#else
List {
NavigationLink {
MyPrimaryView()
} label: {
Label("Primary View", systemImage: "pencil.and.outline")
}
NavigationLink {
Text("More!")
} label: {
Label("Secondary View", systemImage: "plus")
}
}
.navigationTitle("Mecurion")
#endif
}
}
На macos используется первый блок кода, и благодаря выбору: $ page , первый элемент в списке выделяется. Я пытался добавить ОС (iPados) к проверке, и хотя это не вызывает ошибки, она, по -видимому, не имеет никакой достоверности в качестве самой проверки. В идеале я бы выбрал первый элемент, но подходящий обходной путь - это выделить его. Я использую NavigationLinks в боковой панели и панелях содержимого, чтобы стимулировать изменения контента, а приложение функционирует, как и ожидалось, кроме этой путаницы на устройствах, больше, чем iPhone. Настройки, здоровье, пароли и новостные приложения все работают таким образом, поэтому мне интересно, я просто использую совершенно неправильный подход или есть общий способ справиться с этим или, возможно, есть другой опыт пользователя, который я должен рассматривать?
Подробнее здесь:
https://stackoverflow.com/questions/797 ... ew-on-ipad