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 ...

Get Palm webOS now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.