web-dev-qa-db-ja.com

SwiftUI:macOSでNavigationViewを使用する方法?

SwiftUIの学習に使用している2つの個別のXcodeプロジェクトがあります。

  1. Mac上の真のmacOSプロジェクト(Catalystではない)。
  2. IOSプロジェクト(iPhone)。

次のコードは、マスター詳細ビューを持つ単純なNavigationViewを作成します。

import SwiftUI

struct ListView : View {
    var body: some View {
        NavigationView {
            List() {
                NavigationButton(destination: Text("detail 1")) {
                    Text("row 1")
                }
                NavigationButton(destination: Text("detail 2")) {
                    Text("row 2")
                }
            }
        }
    }
}

#if DEBUG
struct ListView_Previews : PreviewProvider {
    static var previews: some View {
        ListView()
    }
}
#endif

IOSで期待どおりに動作しますか????

しかし、macOSプロジェクトでは、上記と同じコードが同じように機能しません????

Macでアプリを起動すると、このウィンドウが表示されます

enter image description here

そして、任意の行をクリックすると、詳細ビ​​ューが折りたたまれたり消えたりするだけで、詳細ビューは表示されません。

enter image description here

これを修正する方法はありますか?多分私は何かが足りないのですか?または、これは単なるバグですか?

8
Salavat Khanov

私には答えはありませんが、同じことをしようとしていますが、追加する観察結果がいくつかあります。おそらくそれらは役立つでしょう:

宛先ビューを追加します。

NavigationButton(destination: DetailView()) {
            Text("Show Detail")
        }

NavigationViewで幅を設定すると、右側のビューが消えなくなります。

また、追加

 .onAppear { print("DetailView called") } 

詳細ビューを見ると、表示されていなくても、ボタンがクリックされたときに実際にビューが呼び出されることがわかります。

編集:それはそこにあります!ビューは仕切りによって非表示になりました。左にドラッグして詳細ビューを表示します。

編集2:Xcodeベータ2で、「「NavigationView」はmacOSでは使用できません」というメッセージが表示されます。

1
rougement