2012-02-19 2 views
1

мое приложение использует IOS раскадровкипослать сообщение родительской формы объекта пирог

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

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

*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 отправляет что-нибудь (например, строка) Или другими словами когда я взаимодействую с любым объектом, например, кнопкой на всплывающем представлении, я хочу изменить родительские кнопки. title label

ответ

0

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

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

+0

U знаю, я попробовал. я не могу сделать делегирование в приложении раскадровки ... В любом случае спасибо за ответ u'r. И для ссылки, это действительно полезно –

+0

Как сделать делегирование для родительского объекта (кнопка в моем случае) –

+0

Я думаю, что вы запутались между шаблоном делегирования appDelegate и другого класса. Хотя appDelegate недоступен в Storyboard, использование шаблона делегирования для обратных вызовов по-прежнему является правильной техникой. – user523234

0

Как насчет того, чтобы написать функцию на вашем главном контроллере просмотра, чтобы делать то, что вы хотите. Затем вызовите эту функцию из popover? (т. е. использовать «подготовить для segue», чтобы отправить popover идентификатор Main View Controller, а затем использовать этот id для вызова функции Main View из popover)