отправить сообщение родительскому объекту в форме popover - PullRequest
1 голос
/ 20 февраля 2012

мое приложение для iOS использует раскадровку

у него есть 2 контроллера представления: - контроллер представления основной раскадровки - и контроллер представления popover с некоторыми объектами в нем

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

*CGRect buttonFrame = CGRectMake(10., 10., 120., 50.);

oneButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
[oneButton setImage:[UIImage imageNamed:[NSString stringWithFormat:@"someImage.png", img]] forState:UIControlStateNormal];
[oneButton setTag:img];
[oneButton setFrame:buttonFrame];
[oneButton addTarget:self action:@selector(pressButton:) forControlEvents:UIControlEventTouchUpInside];

[self.view addSubview:oneButton];*

действие этой кнопки показывает мой вид поповера так:

*- (void) pressButton:(id)sender {

popoverViewController *popoverFrame = [self.storyboard instantiateViewControllerWithIdentifier:@"myPopoverView"];

popoverWithObjects = [[UIPopoverController alloc] initWithContentViewController:popoverFrame];

[popoverWithObjects presentPopoverFromRect:[sender frame] inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:NO];

}*

с этого момента ситуация такова, что яне могу отправить на мою кнопку любое сообщение или результат.я хочу сказать своей программной кнопке (обратите внимание - у меня есть только отправитель этой кнопки action:@selector(pressButton:)), что popover возвращает какой-либо результат или какое-либо действие объекта в popover отправляет что-либо (например, строку)Или, другими словами, когда я взаимодействую с любым объектом, таким как кнопка в представлении popover, я хочу изменить метку заголовка родительских кнопок

Ответы [ 3 ]

1 голос
/ 20 февраля 2012
0 голосов
/ 23 июля 2013

Как насчет написания функции на главном контроллере вида, чтобы делать то, что вы хотите. Тогда вызвать эту функцию из поповера? (то есть используйте «prepare to segue» для отправки поповера id контроллера основного представления, а затем используйте этот идентификатор для вызова функции в главном представлении из всплывающего окна)

0 голосов
/ 20 февраля 2012

Вам необходимо использовать делегат. Проверьте мой ответ на этот похожий вопрос из этого SO .

Редактировать: ссылка на учебник на раскадровке и использование шаблона делегата. И мой оригинальный ответ делегату на это SO

...