Функция объявляет непрозрачный тип возврата при наличии нескольких операторов в ContentView. - PullRequest
0 голосов
/ 02 марта 2020

Написание скрипта для приложения напоминаний в Swift. Всякий раз, когда я пытаюсь поместить кнопку в ту же функцию ContentView, что и код, в котором я переключаю вкладки, она выдает ошибку и требует оператора возврата с переменной типа Opaque.

Попытка вставить VStack и добавить несколько разных вернуть операторы, но ничего не получилось

import SwiftUI

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

    var body: some View  {

        //Adding a reminder
        Button(action: {
            print("test")
        }) {
            Text("Testing")
        }

        //Switching Tabs
        TabView(selection: $selection){

            Text("Reminders")
                .font(.title)
                .tabItem {
                    VStack {
                        Image("first")
                        Text("Reminders")
                    }
                }
                .tag(0)
            Text("Settings")
                .font(.title)
                .tabItem {
                    VStack {
                        Image("second")
                        Text("Settings")
                    }
                }
                .tag(1)
        }

    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

1 Ответ

0 голосов
/ 03 марта 2020

body должен возвращать один View, поэтому вам нужно обернуть ваши подпредставления в некоторый контейнер. Я могу предположить, что это было предназначено следующее

demo

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

    var body: some View  {

        ZStack {
            //Switching Tabs
            TabView(selection: $selection){

                Text("Reminders")
                    .font(.title)
                    .tabItem {
                        VStack {
                            Image("first")
                            Text("Reminders")
                        }
                }
                .tag(0)
                Text("Settings")
                    .font(.title)
                    .tabItem {
                        VStack {
                            Image("second")
                            Text("Settings")
                        }
                }
                .tag(1)
            }
            //Adding a reminder
            Button(action: {
                print("test")
            }) {
                Text("Testing")
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...