Have you looked at
https://github.com/airbnb/paris by any chance? It allows you to change styles for components at runtime.
I have a few apps where I do something similar. There's a default style, which is the foundation app and, upon signing it, it fetches the style preferences for the user and then applies it as they navigate through the app. For instances where they don't have a preference, it simply falls back to the default.
While my implementation is bespoke, I went through the Paris sample code and it seems like it does the same thing (just neater!) and at first glance, it looks like it'll do what you want.