在主视图中运行方法,以响应popover方法

时间:2011-07-30 14:29:24

标签: iphone methods popover

我正试图在我的主视图(TapView)中从我的popover(pop)中的按钮调用一个方法

现在我已经

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

设置,以便当弹出窗口被解除时,它会运行该方法。这是有效的,并且是“可接受的”

我宁愿发生的事情是用户按下UIButton(让我们在弹出框中调用它''load1',而这会调用该方法。

有人对此有什么好主意吗?我确信这很简单,但我不确定'我想做什么',所以寻找答案给了我们很多选择。

编辑:这就是我如何调用我的popover。这可能有所帮助。

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 个答案:

答案 0 :(得分:1)

向内容视图控制器添加属性,并将其设置为引用要调用方法的TapView实例。然后,在内容视图控制器中,您可以回调所需的任何方法。

这似乎是同一个问题,答案看起来很合理。

UIPopovercontroller Parent?

答案 1 :(得分:1)

在popover控制器的标题中,添加:

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

综合那个。当你创建popover(我假设在TapView.m的某个地方你{/ 1}}你的popover 引用你发布的代码时),设置

alloc/init
sLoad.tapView = self; 之后

。在这种情况下,alloc/init将位于要调用方法的TapView实例中。

按钮应调用操作方法:

self

连接该方法(标题中有适当的声明:- (IBAction)noise { [self.tapView noise]; } ),你很高兴。