Skip to content

Navigator_Datasource

ohitsdaniel edited this page Apr 29, 2021 · 10 revisions

Navigator.Datasource

Observable Object exposing navigation path changes

class Datasource: ObservableObject 

Inheritance

ObservableObject

Initializers

init(path:screenID:)

init(
      path: [IdentifiedScreen],
      screenID: @escaping () -> ScreenID = ScreenID.init
    ) 

init(root:screenID:)

Initialise a data source given a root screen.

convenience init<S: Screen>(
    root: S,
    screenID: @escaping () -> ScreenID = ScreenID.init
  ) 

Parameters

  • root: The application's root screen
  • screenID: Closure used to initialise ScreenIDs for new navigation path elements

init(root:screenID:)

Initialise a data source given a root screen.

convenience init(
    root: AnyScreen,
    screenID: @escaping () -> ScreenID = ScreenID.init
  ) 

Parameters

  • root: The application's root screen
  • screenID: Closure used to initialise ScreenIDs for new navigation path elements

init(path:screenID:)

Initialise a data source given a navigation path.

convenience init(
    path: [AnyScreen],
    screenID: @escaping () -> ScreenID = ScreenID.init
  ) 

Parameters

  • path: The navigation path built on Root view appear
  • screenID: Closure used to initialise ScreenIDs for new navigation path elements

Properties

path

@Published public var path: PathUpdate

Methods

go(to:on:)

func go(to successor: AnyScreen, on id: ScreenID) 

go(to:on:)

func go(to newPath: [AnyScreen], on id: ScreenID) 

goBack(to:)

func goBack(to id: ScreenID) 

replace(path:)

func replace(path: [AnyScreen]) 

dismiss(id:)

func dismiss(id: ScreenID) 

dismissSuccessor(of:)

func dismissSuccessor(of id: ScreenID) 

replaceContent(of:with:)

func replaceContent(of id: ScreenID, with newContent: AnyScreen) 

replace(screen:with:)

func replace(screen: AnyScreen, with newContent: AnyScreen) 

didAppear(id:)

func didAppear(id: ScreenID) 
Clone this wiki locally