Skip to content

Passing Data With XCoordinator #11

@brcbydr

Description

@brcbydr

Hi all,

Thanks for the MVC example and the sliders.

I want to create model at first in AppCoordinator and don't want to get instance whole project. I don't know if this is the best way but I need my updated model in all the view controllers. This can any data by the way, I want to pass data using XCoordinator.

My code is like below, router is assigning, but model is still nil in VC? Why?

`class AppCoordinator {
var root: Presentable?
private var person: Person

init() {
    self.person = Person()
}

func start(in window: UIWindow) {
    root = {
        if MyUserDefaults.firstLaunch { //Uygulamaya ilk kez giriş yapılmışsa
            return GuideCoordinator(model: person)
        } else if FirestoreHandler.authUID == nil { //Daha önce giriş yapılmış ancak user authenticated değilse
            return AuthCoordinator(model: person)
        } else { //Daha önce giriş yapılmışsa ve kullanıcı authenticated ise
            return AuthCoordinator(model: person) //TODO: MainCoordinator()
        }
    }()
    root?.setRoot(for: window)
}

}

class AuthCoordinator: NavigationCoordinator {
private let disposeBag = DisposeBag()
private var person: Person

// MARK: Initialization
init(model: Person) {
    self.person = model
    super.init(initialRoute: .signInOrSignUp)
}

// MARK: Overrides
override func prepareTransition(for route: AuthRoute) -> NavigationTransition {
    switch route {
    case .signInOrSignUp:
        let vc = LoginRegisterViewController.instantiate()
        vc.router = unownedRouter
        vc.model = person
        vc.hideNavigationBar()
        return .push(vc)
    }
}

}`

Thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions