NavigationLink в contextMenu - PullRequest
       6

NavigationLink в contextMenu

0 голосов
/ 10 апреля 2020

Я экспериментировал с NavigationLink в contextMenu и столкнулся с этой проблемой:

import SwiftUI

struct ContentView: View {
    var body: some View {
        NavigationView {
            VStack {
                Text("foo")
                    .contextMenu {
                        NavigationLink(destination: Text("foo context destination")) { //works
                            Text("foo context")
                        }
                    }
                    .padding(.all)

                NavigationLink(destination: Text("bar destination")) { //works
                    Text("bar")
                        .contextMenu {
                            NavigationLink(destination: Text("bar context destination")) {  //does not work
                                Text("bar context")
                            }
                        }
                }
                .padding(.all)
            } //VStack
        } //NavigationView
    } //body
} //ContentView

Как показано в коде, NavigationLink в contextMenu, кажется, работает для 'foo context', но не для «контекста бара». Разница в том, что «foo» заключен в NavigationLink, а «bar» - нет. Буду признателен за любые предложения по решению проблемы с навигацией по «контексту бара».

Редактировать: Чтобы уточнить, я хотел бы найти способ перехода к пункту назначения «бар», нажав «панель», ИЛИ перейти к «бар контекстного назначения», нажав «бар контекст» в contextMenu. Кажется, проблема в том, что когда "bar" обернут в NavigationLink, то NavigationLink в contextMenu, прикрепленном к "bar", не работает.

Спасибо!

1 Ответ

0 голосов
/ 10 апреля 2020

Я внес изменения в ваш код, так что оба "foo" и "bar" работают.

import SwiftUI

struct ContentView: View {
    var body: some View {
        NavigationView {
            VStack {
                Text("foo")
                    .contextMenu {
                        NavigationLink(destination: Text("foo context destination")) { //works
                                Text("foo context")
                            }
                    }
                .padding(.all)
                Text("bar")
                    .contextMenu {
                        NavigationLink(destination: Text("bar context destination")) {  //does not work
                            Text("bar context")
                            }
                    }
                .padding(.all)
            } //VStack
        } //NavigationView
    } //body
} //ContentView
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...