The info block isn't really for passing data to a theme, it's more meant to contain information about the theme, or info needed to configure the theme (for example, if it comes in multiple colours).
The theme layout, and all partials, are all View objects, and passing data to them works exactly the same.
You either pass data to the View when it gets forged, using the set() or set_safe() method of the View object, or set_global() if the data has to be accessable from any view. With set_global(), is doesn't matter on which View object you call it.
How you get to the View object depends on what data you want to set where.
It all depends on your requirements, and how you have set up the request flow in your controller. Check the Theme and View sections in the docs to see what methods are available, and what they do.