Основная концепция: общение между двумя взглядами? - PullRequest
1 голос
/ 11 апреля 2010

Как отправить информацию между двумя представлениями (и, следовательно, двумя классами)? Я ищу своего делегата приложения? Есть ли лучший или альтернативный способ?

Ответы [ 2 ]

1 голос
/ 11 апреля 2010

Если вы хотите отправить информацию обратно, вы можете использовать target-action (как это делает UIControl), или вы можете отправлять NSNotifications или использовать общий протокол делегирования.Если это не информация, используемая в вашем приложении, ее перенос в делегат приложения может оказаться излишним.

0 голосов
/ 11 апреля 2010

Я бы использовал делегат приложения. Или, если одному представлению принадлежит другое, вы можете инициализировать их вместе и сохранить основную ссылку на него в классе.

Мне всегда полезно иметь глобальный объект Context для хранения глобальной информации среди представлений. Это может быть информация о конфигурации, текущая ориентация устройства, обработчики базы данных и т. Д.

Для переменных, для которых требуется перекрестный доступ, вы можете использовать Свойства.

class VC1 : UIViewController {
   NSString* v1;
   NSString* v2;
}

@property (copy) NSString *v1;
@property (copy) NSString *v2;

А затем, в другом представлении:

class VC2 : UIViewController {
    VC1 *vc1;
}

И в ваших реализациях сообщений в VC2 вы можете использовать VC1 v1 и v2 следующим образом:

- (void) someMessage {
   NSLog(@"VC1's v1 value is %@ and v2 value is %@", [vc1 v1], [vc1 v2]);
}

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...