XCode 12.5 日本語化計画: SwiftUI

構造体


NavigationLink


ナビゲーションのプレゼンテーションを制御するビュー。





宣言


struct NavigationLink<Label, Destination> where Label : View, Destination : View



概観


ユーザはナビゲーションリンクをクリックまたはタップして、NavigationView 内にビューを表示します。リンクの末尾のクロージャ内にビューコンテンツを提供することで、リンクの視覚的な外観を制御します。たとえば、Label を使用してリンクを表示できます。

NavigationLink(destination: FolderList(id: workFolder.id)) {

Label("Work Folder", systemImage: "folder")

}


テキストのみで構成されるリンクの場合、文字列を受け取り、Text ビューを作成するコンビニエンスイニシャライザの 1 つを使用できます。

NavigationLink("Work Folder", destination: FolderList(id: workFolder.id))


宛先ビューでリンクを初期化してナビゲーションを実行します。たとえば、カラーサンプルを表示する ColorDetail ビューについて考えてみます。

struct ColorDetail: View {

var color: Color


var body: some View {

color

.frame(width: 200, height: 200)

.navigationTitle(color.description.capitalized)

}

}


以下の NavigationView は、カラー詳細ビューへの 3 つのリンクを現しています。

NavigationView {

List {

NavigationLink("Purple", destination: ColorDetail(color: .purple))

NavigationLink("Pink", destination: ColorDetail(color: .pink))

NavigationLink("Orange", destination: ColorDetail(color: .orange))

}

.navigationTitle("Colors")


Text("Select a Color") // A placeholder to show before selection.

}



オプションで、ナビゲーションリンクを使用してプログラムでナビゲーションを実行できます。これは、以下の 2 つの方法のいずれかで行います。


  • リンクの isActive パラメータをブール値に結束します。値を true に設定すると、ナビゲーションが実行されます。

  • リンクの selection パラメータを値に結束し、変数の型の tag タグを提供します。selection の値を tag に設定すると、ナビゲーションが実行されます。

  • たとえば、前の例の紫色のページがいつ表示されるかを示す State 変数を作成できます。


    @State private var shouldShowPurple = false


    そして、紫色のナビゲーションリンクを変更して、state 変数に結束できます。


    NavigationLink(

    "Purple",

    destination: ColorDetail(color: .purple),

    isActive: $shouldShowPurple)


    コードの他のどこの場所で shouldShowPurpletrue に設定しても、ナビゲーションリンクがアクティブになります。


    トピックス




    宛先ビューの提示




    プログラムによるアクティベーションを使用した宛先ビューの提示




    選択可能な宛先ビューの提示







    標準の修飾子の適用




    廃止されたイニシャライザ


    代わりに、ViewBuilder 宛先パラメーターを受け取るイニシャライザを使用してください。


    関連




    以下に準拠


    View



    以下も見よ




    階層的なビュー


































    目次
    Xcode の新機能

  • 利用可能
  • iOS 13.0+
    macOS 10.15+
    Mac Catalyst 13.0+
    tvOS 13.0+
    watchOS 6.0+

    フレームワーク SwiftUI



    このページには

  • 宣言
  • 概観
  • トピックス
  • 関連
  • 以下も見よ












  • トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ