Formation PUB900 : Développer une application pour iPhone avec SwiftUI, H-2024 La barre de navigation

19.1 Configurer le titre de l'application


Il est intéressant d'ajouter un titre dans la bare de navigation, dans le haut de la fenêtre d'une application mobile. Cette barre peut contenir le titre de l'application et possiblement des icônes ou du texte qui donnent accès à des fonctionnalités de votre choix.

Dans cette fiche :

Avec SwiftUI, il est possible d'ajouter un titre en englobant le contenu de la vue dans un NavigationStack, qui est disponible depuis iOS 16.

Dans sa forme la plus simple, le titre de l'application sera fourni à l'aide de la méthode navigationTitle().

Notez que la vue NavigationView et sa méthode navigationBarTitle() sont obsolètes.

Voici donc comment définir le titre de l'application à l'aide de NavigationStack et navigationTitle().

SwiftUI

struct ContentView: View {
  var body: some View {
    NavigationStack {
      Text("Hello, world!")
        .navigationTitle("Le titre")
    }
  }
}

Application avec barre de titre

Dans les faits, une vue est rarement composée d'un seul élément.

Tout le contenu de la vue doit être à l'intérieur du NavigationStack.

On retrouvera généralement quelque chose du genre :

SwiftUI

struct ContentView: View {
  var body: some View {
    NavigationStack {
      VStack {
        Text("Hello, world!")
        // ...
      }
      .navigationTitle("Le titre")
    }
  }
}

Titre plus petit

Si vous préférez un titre plus petit et centré, il est possible d'ajuster le code comme ceci :

SwiftUI

struct ContentView: View {
  var body: some View {
    NavigationStack {
      VStack {
        Text("Hello, world!")
        // ...
      }
      .navigationTitle("Le titre")
      .navigationBarTitleDisplayMode(.inline)
    }
  }
}

Application avec barre de titre

Visuellement, on obtiendra le même résultat en définissant un ToolbarItem avec l'emplacement .principal.

SwiftUI

struct ContentView: View {
  var body: some View {
    NavigationStack {
      VStack {
        Text("Hello, world!")
        // ...
      }
      .toolbar(content: {
        ToolbarItem(placement: .principal, content: {
          Text("Le titre")
        })
      })
    }
  }
}

Où placer le .navigationTitle? 

Il est important de placer le titre de l'application après le contrôle d'empilement principal, à l'intérieur du NavigationStack.

SwiftUI

struct ContentView: View {
  var body: some View {
    NavigationStack {
      VStack {
        Text("Hello, world!")
        // ...
      }
      .navigationTitle("Le titre")
    }   // fin NavigationStack
  }
}

Notez que la vue principale devra être entièrement incluse dans le NavigationStack. Ceci ne fonctionnera pas :

SwiftUI

struct ContentView: View {
  var body: some View {
    NavigationStack {
      Text("Hello, world!")
        .navigationTitle("Le titre")
    }
    VStack {
      Text("Hello, world!")
        .padding()
      Image("bonjour")
    }
  }
}

Pour plus d'information

« Working with Toolbar in SwiftUI ». AppCoda. https://www.appcoda.com/swiftui-toolbar/

▼Publicité

Veuillez noter que le contenu de cette fiche vous est partagé à titre gracieux, au meilleur de mes connaissances et sans aucune garantie.
Merci de partager !
Soumettre