Controllers
So far we’ve used two controller classes (StageController and SceneController) and referred to a third
(AppController). All three classes are part of Mojo.Controller namespace. The assistants
that we’ve created are associated with their respective controller classes
and rely heavily on the methods in those classes.
AppController and the use of
stages within an application will be covered in depth in Chapter 10, when we cover notifications and
background applications.
Note
It is worth noting that an application has just one application controller object and may optionally have a single application assistant to create and manage stages.
Controllers and Assistants
An application can have multiple stage controller objects, and
each stage controller can have a stage assistant. A stage
assistant is not an instance of StageController, but is actually a delegate of
the controller. The assistant has a controller property set to a
reference to the associated controller, which is used to directly call
the controller’s methods. The assistant defines its own methods as
well.
Each stage controller has a stack of scene controllers. When a scene is pushed, a new scene controller is created and pushed onto the stack. As with the stage, each scene controller has a scene assistant delegate that, after initialization, will have its controller property set to a reference of the scene controller it belongs to.
To illustrate this, let’s go back to our News application. Although it’s quite simple ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access