dev4jam / ToDo

ToDo iOS app is a demo of RIBs architecture https://github.com/uber/RIBs/wiki
MIT License
94 stars 17 forks source link

MVC with RIBS #5

Open mohammad19991 opened 5 years ago

mohammad19991 commented 5 years ago

Hi @dev4jam,

I have an application which is already built using MVC and now I'm planning to start using RIBs and migrate the app step by step. So I created a RIB for example ProfileRIB and I want to added it to my TabBarController. is there a way I can combine RIBs with MVC or the whole application have to be built using RIBs?

Thanks

dev4jam commented 5 years ago

Hi @mohammad19991. Definitely, it's possible. In fact, I've done this several times. One concern though - you'll need to implement several protocols from RIBs.

mohammad19991 commented 5 years ago

but for me it still not clear what needs to be done, for example I created ProfileRIB and now I want to add it to my TabBarController:

let builder = ProfileBuilder(dependency: AppComponent()).build(with: context)
let profileViewController = builder.viewControllable.uiviewController
tabbar.viewControllers = [vc1, vc2, profileViewController]

doing this will cause memory leak and crash the app because am not attaching this (child)RIB to a parent RIB.

dev4jam commented 5 years ago

@mohammad19991 you may try to implement your Profile RIB as your own LaunchRouter (just name it differently) and confirm to LaunchRouting protocol. And override launch method to embed your viewcontroller into the tabbar.