#import "INotification.h" #import "IMediator.h" #import "IObserver.h" /** * The interface definition for a PureMVC View. * *

* In PureMVC, IView implementors assume these responsibilities:

* *

* In PureMVC, the View class assumes these responsibilities: *

* * @see IMediator, IObserver, INotification */ @protocol IView /** * Check if a Mediator is registered or not * * @param mediatorName * @return whether a Mediator is registered with the given mediatorName. */ -(BOOL)hasMediator:(NSString *)mediatorName; /** * Notify the IObservers for a particular INotification. * *

* All previously attached IObservers for this INotification's * list are notified and are passed a reference to the INotification in * the order in which they were registered.

* * @param notification the INotification to notify IObservers of. */ -(void)notifyObservers:(id)notification; /** * Register an IMediator instance with the View. * *

* Registers the IMediator so that it can be retrieved by name, * and further interrogates the IMediator for its * INotification interests.

*

* If the IMediator returns any INotification * names to be notified about, an Observer is created encapsulating * the IMediator instance's handleNotification method * and registering it as an Observer for all INotifications the * IMediator is interested in.

* * @param mediator a reference to the IMediator instance */ -(void)registerMediator:(id)mediator; /** * Register an IObserver to be notified * of INotifications with a given name. * * @param notificationName the name of the INotifications to notify this IObserver of * @param observer the IObserver to register */ -(void)registerObserver:(NSString *)notificationName observer:(id)observer; /** * Remove an IMediator from the View. * * @param mediatorName name of the IMediator instance to be removed. * @return the IMediator that was removed from the View */ -(id)removeMediator:(NSString *)mediatorName; /** * Remove a group of observers from the observer list for a given Notification name. *

* @param notificationName which observer list to remove from * @param notifyContext removed the observers with this object as their notifyContext */ -(void)removeObserver:(NSString *)notificationName notifyContext:(id)notifyContext; /** * Retrieve an IMediator from the View. * * @param mediatorName the name of the IMediator instance to retrieve. * @return the IMediator instance previously registered with the given mediatorName. */ -(id)retrieveMediator:(NSString *)mediatorName; @end