Как создать статический делегат из main-viewcontroller? - PullRequest
0 голосов
/ 24 февраля 2011

надеюсь, что кто-то может помочь мне в изучении новых вещей о делегатах в iOS-программировании.

У меня есть "MainViewController", который является первым виртуальным контроллером при запуске приложения.У меня есть выбор моделей с разными UIImageViews, и после выбора одного из них я выдвигаю новый VC.Я хочу обработать modelChoice с делегатом, чтобы все другие viewControllers могли его прослушивать и действовать на основе выбора пользователя.

Но значит ли это, что мне нужно выделить новый экземпляр этого "MainViewController" вкаждый вк?Какое на это решение?Как мне создать (я думаю, что он называется) статический делегат?

Было бы здорово узнать это .. Спасибо за обмен ..

1 Ответ

1 голос
/ 24 февраля 2011

Вы можете сделать свой 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];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...