что вызывается после возврата из presentModalViewController / dismissModalViewControllerAnimated: - PullRequest
1 голос
/ 02 января 2011

, чтобы показать модальное представление из моего mainView, которое я использую:

[self presentModalViewController:myController animated:YES];

и в MyController я закрываю это представление с помощью:

[self dismissModalViewControllerAnimated:YES];

Но как я могу узнать в mainViewчто модал был закончен (перерисовать мой стол)?В настоящее время я установил локальную переменную в YES в своем mainView после запуска модального представления и реакции на viewWillAppear:

[self presentModalViewController:myController animated:YES];
_reloadTableData = YES;

-(void)viewWillAppear:(BOOL)animated {
   [super viewWillAppear:animated];
   if (_reloadTableData) {
     _reloadTableData = NO;
     [_tableView reloadData];
   }
}

Есть ли лучший способ сделать это?

1 Ответ

4 голосов
/ 02 января 2011

Вообще говоря, не следует отклонять модальное представление самим модальным представлением.

Вместо этого вы должны установить основное представление в качестве делегата модального представления.Когда модальное представление завершает свою задачу, оно может сообщить своему делегату и позволить своему делегату отклонить его.Это очень распространенный так называемый шаблон разработки делегата в Objective-C.

Кстати, вы можете обратиться к некоторым образцам кода, чтобы лучше понять этот шаблон делегата.Я предлагаю вам взглянуть на один из стандартных шаблонов Xcode - шаблон Utility Application .Он имеет очень лаконичную, простую и понятную структуру делегата, построенную внутри.

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