SwiftUI TabbedView показывает только содержимое первой вкладки - PullRequest
7 голосов
/ 07 июня 2019

Я пытаюсь построить TabbedView со следующим простым кодом:

TabbedView {
    Text("Hello world")
        .tabItemLabel(Text("Hello"))
    Text("Foo bar")
        .tabItemLabel(Text("Foo"))
}

Во время работы обе вкладки видны и включены, но содержимое второй вкладки ("Foo") пусто.

Ответы [ 4 ]

20 голосов
/ 07 июня 2019

Попробуйте добавить теги:

    TabbedView {
        Text("Hello world")
            .tabItem { Text("Hello") }
            .tag(0)
        Text("Foo bar")
            .tabItem { Text("Foo") }
            .tag(1)
    }
1 голос
/ 28 июня 2019

Мне удалось это исправить, добавив переменную состояния selection и передав ее для выбора:

struct ContentView : View {
    @State private var selection = 1

    var body: some View {
        TabbedView(selection: $selection) {
            Text("Tab 1!").tabItemLabel(
                Text("Tab 1")).tag(1)
            Text("Tab 2!").tabItemLabel(Text("Tab 2")).tag(2)
        }
    }
}

Теперь, нажав «Tab 2», появится «Tab 2!» на экране, в отличие от пустого экрана.

При этом использовался Xcode 11.0 beta 2 (11M337n), macOS Catalina 10.15 Beta (19A487l).

0 голосов
/ 30 июня 2019

// Попробуйте таким образом, но вы не можете использовать значок из SF Symbols, использовать значки из //icons8.com или с другой платформы. или посмотрите этот урок https://www.youtube.com/watch?v=3PfCU5h5z94

                 struct ContentView : View {

                 var body : some View {

                     TabbedView {

                         Living_R()
                        .tabItemLabel(VStack {
                            Image("home")
                            Text("Home")
                          }).tag(0)

                    ContentView()
                        .tabItemLabel(VStack {
                            Image("search")
                            Text("Search")
                        }).tag(1)

                        Text("Info")
                        .tabItemLabel(VStack {
                            Image("page")
                            Text("Doc")
                        }).tag(2)
           }   
        }    
    }
0 голосов
/ 30 июня 2019

// Попробуйте, но вы не можете использовать значок из SF Symbols, используйте значки из //icons8.com struct ContentView: View {

var body: some View {

TabbedView { Living_R ()

                        .tabItemLabel(VStack {
                            Image("home")
                            Text("Home")
                          }).tag(0)

                    ContentView()
                        .tabItemLabel(VStack {
                            Image("search")
                            Text("Search")
                        }).tag(1)

                        Text("Info")
                        .tabItemLabel(VStack {
                            Image("page")
                            Text("Doc")
                        }).tag(2)

        }
      }    
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...