SwiftUI: Представление вкладок повторяется

#swift #swiftui #tabview

Вопрос:

Я пытаюсь создать представление вкладок для приложения macOS 10.15.

 TabView {   BookmarksView()  .tabItem {  Text("Bookmark Settings")  }    DisplaySettings()  .tabItem {  Text("Display Settings")  } }    

И в любом из моих представлений, включенных во вкладку, у которой есть один элемент в теле, он правильно отображается в представлении вкладки.

 struct BookmarksView: View {  var body: some View {  Text("Bookmarks View")  .font(.title)  .font(Font.body.bold())    } }  

введите описание изображения здесь

Но если я добавлю какой-либо другой элемент в представление, вкладка повторится и отобразит добавленный элемент на своей собственной вкладке.

 struct BookmarksView: View {  var body: some View {  Text("Bookmarks View")  .font(.title)  .font(Font.body.bold())   Text("Testing")  .font(.system(size: 15))    }  }  

введите описание изображения здесь

Комментарии:

1. Я думаю, вам, возможно, потребуется добавить к ним тег или что-то в этом роде.

2. Ваш код хорошо работает для меня (не повторяется) в бета-версии macos 12.1, используя Xcode 13.2-бета. Ваша проблема может быть связана с macos 10.15. Примечание; он также хорошо работает, когда я нацелен на macos 10.15, но запускаю его в бета-версии macos 12.1.

Ответ №1:

Попробуйте явно завернуть их в контейнер (стек или что-то в этом роде), например

 struct BookmarksView: View {  var body: some View {  VStack { // lt;lt; this !!  Text("Bookmarks View")  .font(.title)  .font(Font.body.bold())   Text("Testing")  .font(.system(size: 15))  }   } }  

Комментарии:

1. Однажды у меня была такая же проблема, я не мог вспомнить свое решение, но в тот момент, когда я прокрутил вниз и увидел VStack { Я знал, что это было, лол.