In that example, anything that you wanted to do accessing the pushed view elements need to happen within connect. For example, he loads up a view with a tableview, so accesses the tableview, sets its datasource, etc.
After that, any interaction with the displayed view should happen within callbacks-- so, a button on a view would use its sender parameter to traverse up to the rootview, and do things there. Alternatively, you could load all the views at the start, rather than within connect, so that you can explictly reference them by a variable name. but then you need to manually keep track of what is being presented.
The problem with pythonista navigation views is that we don't get any delegate methods when the displayed view changes. So, you never know when the back button is pressed, for example. You could implement an update function in custom views, along with a positive update_interval -- update is only called for the top view, so you could detect when the back button is pressed that way.