如何将多个委托添加到我的视图控制器?
Posted
技术标签:
【中文标题】如何将多个委托添加到我的视图控制器?【英文标题】:How can i add multiple delegates to my view controller? 【发布时间】:2013-11-21 01:28:07 【问题描述】:我需要有多个代表,<MFMailComposeViewControllerDelegate>
和 <UITextViewDelegate>
。这是我目前的系统,它只允许我拥有一个:
#import <UIKit/UIKit.h>
#import <MessageUI/MessageUI.h>
@interface FifthViewController : UIViewController <MFMailComposeViewControllerDelegate>
@property (weak, nonatomic) IBOutlet UITextField *subjectfield;
@property (weak, nonatomic) IBOutlet UITextField *explainfield;
- (IBAction)sendbutton:(id)sender;
@property (weak, nonatomic) IBOutlet UITextField *BCCfield;
@property (weak, nonatomic) IBOutlet UITextField *name;
@end
我尝试过使用逗号和空格之类的操作,但是当我有多个代表时,我收到错误“预期标识符”。
【问题讨论】:
逗号分隔很好,请务必导入您需要定义委托的任何框架/类。 只是一个澄清 - 你没有在这里添加代表。您告诉编译器您的视图控制器符合列出的协议(MFMailComposeViewControllerDelegate 和 UITextViewDelegate)。您不会向视图控制器添加委托,而是要让您的视图控制器成为 MFMailComposeViewController 和 UITextView 的委托。 【参考方案1】:<>
括号内应该有逗号分隔的协议。例如
@interface FifthViewController : UIViewController <MFMailComposeViewControllerDelegate, UITextViewDelegate>
【讨论】:
【参考方案2】:带逗号。
@interface MyViewControllerName : UIViewController <ProtocolOne, ProtocolTwo,
ProtocolThree, ProtocolFour, IveSeenAsManyAsTenProtocols, YouCanAddAllYouWant>
必须导入这些协议的头文件。
【讨论】:
如果我有两个控制器要委托怎么办?例如:@interface MyViewControllerName : UIViewController <ProtocolOne, ProtocolTwo>, CustomController<protocolthree>
我不明白这个问题。
:请看这个link以上是关于如何将多个委托添加到我的视图控制器?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 UIViewController 中使用 TableView?
如何使用委托将数据从多个视图控制器传递回根视图控制器? IOS 7