1

我正在尝试从弹出框(pop)中的按钮调用主视图(TapView)中的方法

现在我有

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

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

不过,我宁愿发生的是用户按下 UIButton(让我们在弹出窗口中称它为...'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];
4

2 回答 2

1

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

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

UIPoovercontroller 父级?

于 2011-08-09T23:58:12.100 回答
1

在弹出框控制器的标题中,添加:

#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;,您就可以开始了。

于 2011-08-11T16:41:51.250 回答