通过示例 UIAlertViewDelegate 了解协议实现
Posted
技术标签:
【中文标题】通过示例 UIAlertViewDelegate 了解协议实现【英文标题】:Understanding protocol implementation with example UIAlertViewDelegate 【发布时间】:2010-06-25 08:24:38 【问题描述】:有两个类 A 和 B:
@interface A : NSObject ... @end
@接口 B ...
A 将通过创建 B 来使用 B 并使用它。
在 B 中,有机会创建 UIAlertViewDialog,并进行一些用户交互。
我认为在A类中实现clickedButtonAtIndex是合理的,因为A被声明为向UIAlertViewDelegate确认。但事实是我们应该在 B 中实现。
(void) alertView:(UIAlertView *)alert clickedButtonAtIndex:(NSInteger)buttonIndex //bla bla
我真的不明白像这种情况下确认协议的真正原因是什么。
提前致谢。
【问题讨论】:
【参考方案1】:在创建 UIAlertView 时,您可以定义委托类:
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle: title
message: message
delegate: delegate
cancelButtonTitle: firstButtonName
otherButtonTitles: nil];
因此,如果您在 B 类中创建 UIAlertView,但您想对 A 类中的按钮点击做出反应,则需要将上面代码中的委托设置为 A 类。
【讨论】:
如果您能接受答案(通过单击复选标记)如果它是您正在寻找的信息,那就太好了;)以上是关于通过示例 UIAlertViewDelegate 了解协议实现的主要内容,如果未能解决你的问题,请参考以下文章
UIAlertViewDelegate 的 clickedButtonAtIndex 后崩溃,消息 [MPMoviePlayerViewController isKindOfClass:]: 消息发送
App Delegate 发出警告:“id <UIApplicationDelegate>”不符合“UIAlertViewDelegate”协议
我是符合 UIAlertViewDelegate 协议的 NSObject - 释放自己合适吗?
实现我自己的委托时未调用 UIAlertViewDelegate 方法 clickedButtonAtIndex