Aller au contenu principal

🖥️ Navigation, modules, thème (iOS)

Après connect, l'instance AzeooSDK connectée expose :

  • sdk.navigate(to:) + opérations retour — navigation typée
  • sdk.setModuleContainer(_:) + sdk.tabHost(for:) — coordination UI native adaptative
  • sdk.modules.nutrition / sdk.modules.training — intégration
  • sdk.theme — contrôle du thème à l'exécution
sdk.navigate(to: .nutrition(.plan(id: "abc-123")))
sdk.navigate(to: .training(.workouts))
sdk.back()
sdk.backToRoot()
sdk.canGoBack { result in /* Bool */ }
sdk.getCurrentRoute { result in /* String? */ }

Catalogue complet : Catalogue des destinations (nutrition + entraînement).

Coordinateurs de modules (setModuleContainer)

Installez une fois au démarrage pour que la navigation inter-modules bascule votre UI native :

sdk.setModuleContainer(AzeooUITabBarCoordinator(self, mapping: [
.nutrition: 1, .training: 2,
]))

Coordinateurs intégrés :

  • AzeooUITabBarCoordinator — pour UITabBarController
  • AzeooUINavigationCoordinator — pour push/pop UINavigationController
  • AzeooSwiftUITabCoordinator<Tag> — pour TabView SwiftUI avec un Binding

Conteneurs personnalisés (barre latérale / page view / tiroir) : implémentez AzeooModuleContainer directement — une seule méthode.

Hôtes d'onglets (sdk.tabHost(for:))

Retourne un UIViewController léger hébergeant la surface Flutter partagée pour un module — conçu pour UITabBarController.viewControllers :

let nutritionTab = sdk.tabHost(for: .nutrition)
let trainingTab = sdk.tabHost(for: .training)

Voir Hébergement multi-onglets pour le schéma complet.

Intégration (plein écran)

Pour une intégration plein écran ponctuelle :

// UIKit
sdk.modules.nutrition.display(in: hostVC, bottomSafeArea: true) { _ in }
// SwiftUI
sdk.modules.nutrition.getView(bottomSafeArea: true)

Thème (sdk.theme)

setMode, setLightMode, setDarkMode, setSystemMode, toggleMode, setPrimaryColor, setSecondaryColor, setLightColors, setDarkColors, setTheme, resetToDefault, getCurrentTheme.

Voir aussi