Это обычно плохой признак того, что я полагаюсь на self.parentViewController и / или self.presentingViewController в своем дизайне - PullRequest
0 голосов
/ 14 января 2012

У меня есть SubSelectVC, который обрабатывает выбор под-выбора, который представлен модально из SearchVC. SubSelectVC имеет -(void)didSelectRowAtIndexPath, который выполняет эти параметры, примерно:

if ([[[UIDevice currentDevice] systemVersion] intValue] < 5) {
    ((SearchVC *)self.parentViewController.filters.filterValue = @"Some value";
}
else {
    ((SearchVC *)self.presentingViewController.filters.filterValue = @"Some value";
}

Кажется, это кричит о плохом дизайне, но, я имею в виду, есть возможность сделать это таким образом, и это так просто! Что не так с этим, и как я могу сделать это правильно? (Должен ли я использовать делегирование?)

1 Ответ

2 голосов
/ 14 января 2012

Да, я думаю, что лучше в этой инкапсулированной версии было бы определить протокол делегата в заголовочном файле для SubSelectVC и свойство делегата в SubSelectVC.

Таким образом, ваш контроллер представления может использоваться для любой задачи.это требует модального выбора из списка.

РЕДАКТИРОВАТЬ: добавлен пример заголовка:

SubSelectVC.h:

@protocol SubSelectVCDelegate

- (void)itemSelected:(NSString *)itemName;

@end

@interface SubSelectVC : UIViewController

@property (assign) id <SubSelectVCDelegate> delegate;

// etc...

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