从 UIActionSheet 将信息传递给委托

Posted

技术标签:

【中文标题】从 UIActionSheet 将信息传递给委托【英文标题】:Passing info to a delegate from a UIActionSheet 【发布时间】:2010-09-15 17:36:30 【问题描述】:

我对将数据传递回委托的理解完全围绕着制作一个新的视图控制器并使其符合协议。

我正在尝试从具有 UIDatePickerModeCountDownTimer 模式的 UIDatePicker 集中获取时间输入,但我遇到了问题。

在 Main1.m 内部,我创建了一个 UIActionSheet *action,并设置了所有内容,以便在单击时显示一个 UIDatePicker。在 Main.m 内部我还说:

main.delegate = self;

如果这不是 UIActionSheet,我会在新的 ViewController 中创建一个协议引用,然后让新的 vc 将数据传递给 Main 拥有的方法,但我不能用 UIActionSheet 做到这一点!!

我错过了什么?我认为 Action Sheets 有一些本质上的不同,但我无法弄清楚。

感谢您的帮助!!!

编辑:

对不起!我给我的视图控制器一个通用名称。它实际上不是 Main.m,它的 FirstViewController.h/m

我没有意识到我的通用引用与与 vc 完全不同的 Main.m 文件混淆了。

【问题讨论】:

在'main.delegate = self;'中,什么是'main'对象,什么是'self'? 【参考方案1】:

我不完全理解您为什么将委托分配放在 Main.m 中。我假设您在 ViewController 中设置 UIActionSheet,并从那里启动它。在这种情况下,您的 ViewController 是您的委托对象。所以你需要确保你的 ViewController 实现了 UIActionSheetDelegate。即:

@interface SomeController : UIViewController <UIActionSheetDelegate> 

然后,您只需在视图控制器类中实现该委托所需的方法,就应该这样做。如果我遗漏了有关您如何实现此功能的信息,那么您需要提供更多代码示例进行检查。

【讨论】:

嘿,谢谢你的提示!我编辑了我的问题以澄清歧义。在 UIActionSheetDelegate 中使用所需的方法正是我所需要的!

以上是关于从 UIActionSheet 将信息传递给委托的主要内容,如果未能解决你的问题,请参考以下文章

委托/协议不起作用:将数组从 TableViewController 传递给父 ViewController

Swift:如何将从委托接收到的值传递给函数的完成块?

如何通过委托将信息从键盘视图控制器传递到主视图控制器

从 UIActionSheet 访问 UIPopoverController

在 ui 线程中执行委托(使用消息泵)

如何将委托或函数指针从C#传递给C ++并使用InternalCall在那里调用它