Как вернуть тип представления из функции в Swift UI - PullRequest
0 голосов
/ 14 июля 2020

Я пытаюсь создать несколько элегантную систему навигации для своего приложения. Ниже приведена функция, которая пытается вернуть тип представления. Это не компилируется с:

    func getView(view: String) -> View {
        switch view {
        case "CreateUser":
            return CreateNewsView()
        default:
            return nil
        }
    }

Вышеуказанное приводит к ошибке компиляции: Protocol 'View' can only be used as a generic constraint because it has Self or associated type requirements

Спасибо за вашу помощь.

Ответы [ 2 ]

0 голосов
/ 14 июля 2020

Вы должны вернуть some View

EX:

func getView(view: String) -> some View {
     return YourView()
}

для получения более подробной информации о схватке. Посмотреть, просмотреть this

0 голосов
/ 14 июля 2020

Мне удалось исправить это с помощью оболочки AnyView ():

func getView(view: String?) -> AnyView {
        switch view {
        case "CreateUser":
            return AnyView(CreateNewsView())
        default:
            return AnyView(EmptyView())
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...