Вы можете сделать свой MainViewController как синглтон-класс:
static MainViewController* ctrl = nil;
+(MainViewController*) sharedInstance {
@synchronized( ctrl ) {
if( !ctrl ) {
ctrl = [[MainViewController alloc] init];
}
}
return ctrl;
}
Затем вы можете получить к нему доступ из любого класса, например так: [MainViewController sharedInstance].
Вы также можете добавить метод в MainViewControllerкак:
-(void) addListener:(NSObject<ListenerProtocol>*) listener;
А когда вы создаете другие контроллеры представления, звоните:
[[MainViewController sharedInstance] addListener: newVC];