Запуск метода в главном окне в ответ на метод popover - PullRequest
1 голос
/ 30 июля 2011

Я пытаюсь вызвать метод в главном окне (TapView) с помощью кнопки в моем всплывающем окне (pop)

Теперь, когда у меня есть

    -(void)popoverControllerDidDismissPopover:
(UIPopoverController *)pop {
    [self noise];
}

Настройте так, чтобы при отклонении поповера он запускал метод. Это работает и является «приемлемым»

Я бы предпочел, чтобы это произошло из-за того, что пользователь нажимает кнопку UIB (давайте назовем это ... «load1» во всплывающем окне и вместо этого вызывается метод.

Кто-нибудь получил какие-нибудь яркие идеи по этому поводу? Я уверен, что это очень просто, но я не совсем уверен, что именно я пытаюсь сделать, поэтому поиск ответов дал довольно широкий диапазон вариантов.

РЕДАКТИРОВАТЬ: Вот как я называю мой поповер. Это может помочь.

saveLoadScifi *sLoad = [[saveLoadScifi alloc] init];
UIPopoverController *pop = [[UIPopoverController alloc] initWithContentViewController:sLoad];
[pop setDelegate:self];
CGRect popoverRect = [self.view convertRect:[sender frame]
                                   fromView:[sender superview]];
[pop presentPopoverFromRect:popoverRect inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

Ответы [ 2 ]

1 голос
/ 11 августа 2011

В заголовке контроллера поповера добавьте:

#import "TapView.h"
@property(nonatomic, assign) TapView *tapView;    // *assign* to prevent mutual retain cycle

Синтезируйте это. Когда вы создаете поповер ( Я предполагаю, что где-то в TapView.m вы alloc/init ваш поповер ссылаетесь на опубликованный вами код), установите

sLoad.tapView = self;

после alloc/init. В этом случае self будет в случае TapView, для которого вы хотите вызвать метод.

Кнопка должна вызывать метод действия:

- (IBAction)noise {
    [self.tapView noise];
}

Подключите этот метод (с правильным объявлением в заголовке: -(IBAction)noise;), и все готово.

1 голос
/ 10 августа 2011

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

Похоже, это тот же вопрос, и ответ выглядит разумным.

UIPopovercontroller Parent?

...