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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions