Код: Выделить всё
struct MainPageView: View {
@EnvironmentObject var groups: groupManager
var body: some View {
NavigationStack {
// omitted code
NavigationLink {
AccountView()
} label: {
VStack {
if account.username.isEmpty {
Image("default_account_image")
} else {
account.profilePicture
}
Text("Account")
}
}
// omitted code
}
}
}
< /code>
Стиль также удаляется из кода, поэтому, если вы попытаетесь его предварительно, он будет выглядеть очень странно. Account Код: Выделить всё
class groupManager: ObservableObject {
@Published var groups: [Group] = getAllGroups()
}
Код: Выделить всё
struct AccountView: View {
@State private var tab: Int = 0
@EnvironmentObject var groups: groupManager
var body: some View {
VStack {
Picker("Tabs", selection: $tab) {
Text("Personal").tag(0)
Text("Groups").tag(1)
}
.pickerStyle(SegmentedPickerStyle())
if tab == 0 {
Text("Showing personal view")
PersonalView()
} else if tab == 1 {
Text("Showing group view")
GroupList()
}
}
}
}
Предварительный просмотр из Xcode о том, как он должен выглядеть < /p>
Вот как это выглядит, когда я смотрю на него из Вместо этого основной вид:
Предварительный просмотр из xcode о том, как он выглядит из основного представления < /p>
Последняя часть информации, которую я думаю (и надежда), актуальна, это то, что Grouplist Просмотр внешний вид нравиться. Это типичный список, который я научился делать из документов Apple XCode, и вот он: < /p>
Код: Выделить всё
struct GroupList: View {
@EnvironmentObject var groups: groupManager
var body: some View {
NavigationSplitView {
List(groups.groups) {group in
NavigationLink {
GroupRecipeList(group: group)
} label: {
GroupRow(group: group)
}
.listRowBackground(Color(red: 0.92, green: 0.92, blue: 0.92))
}
.scrollContentBackground(.hidden)
} detail: {
Text("Select a group")
}
}
}
Это должно быть всем фоном. До сих пор я пробовал практически все, что я могу придумать. Я попытался сделать это просто переменной, определенной в другом файле, а не в EnvironmentObject , но у меня все еще была такая же ошибка. Я пробовал явно передаю среду ervenorybject в accountView в навигационном обработке с использованием .environmentObject () , но это тоже не сработало. Я также пытался явно передаю его в Grouplist из AccountView . Я попытался попросить Chatgpt решить мои проблемы, но это просто дало мне тот же совет и никогда не исправил проблему. На данный момент у меня есть идеи, поэтому я был бы признателен за помощь!
Подробнее здесь: https://stackoverflow.com/questions/794 ... hild-views
Мобильная версия