【问题标题】:Running a method in main view, in response to popover Method在主视图中运行一个方法,以响应 popover 方法
【发布时间】:2011-10-16 13:27:30
【问题描述】:

我正在尝试从弹出框 (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];

【问题讨论】:

    标签: iphone methods popover


    【解决方案1】:

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

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

    UIPopovercontroller Parent?

    【讨论】:

    • 看起来很相似,我可以看到它为我的 TapView 提供了一些参考,并创建了弹出框,但我仍然不确定如何设置方法以实际触发。
    【解决方案2】:

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

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

    【讨论】:

    • 在弹出框标题中获取'未知类型名称'TapView'有什么想法吗?添加了我如何调用弹出框的示例代码。
    • 我猜你没有导入“TapView.h”
    • 啊我没有……让我再试一次。
    • 对...很接近了,我按照建议将所有这些都连接起来(将 [self.tapView 噪音] 放在现有方法中,因为这是最适合的地方)但没有得到响应 - 唯一的事情我有一个警告,TapViewController(即 TapView - 控制器实际上是 TapViewController)可能不会对“噪音”做出反应。要继续探索,但我想我会把它扔在那里。编辑:意识到我没有在 TapView.h 中声明噪音,但我去了,声明了它等等,它仍然具有相同的效果,但没有警告。
    • 啊,错字了。谢谢你,滴答声是你的,还有赏金:) 享受吧。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-22
    • 2014-01-18
    相关资源
    最近更新 更多