如何将多个委托添加到我的视图控制器?

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】:

&lt;&gt; 括号内应该有逗号分隔的协议。例如

@interface FifthViewController : UIViewController <MFMailComposeViewControllerDelegate, UITextViewDelegate>

【讨论】:

【参考方案2】:

带逗号。

@interface MyViewControllerName : UIViewController <ProtocolOne, ProtocolTwo,
   ProtocolThree, ProtocolFour, IveSeenAsManyAsTenProtocols, YouCanAddAllYouWant>

必须导入这些协议的头文件。

【讨论】:

如果我有两个控制器要委托怎么办?例如:@interface MyViewControllerName : UIViewController &lt;ProtocolOne, ProtocolTwo&gt;, CustomController&lt;protocolthree&gt; 我不明白这个问题。 :请看这个link

以上是关于如何将多个委托添加到我的视图控制器?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 UIViewController 中使用 TableView?

如何使用委托将数据从多个视图控制器传递回根视图控制器? IOS 7

表视图控制器问题

如何在所有视图控制器中将自定义 uibarbuttonItem 添加到我的导航项?

如何设置滚动视图委托? [关闭]

如何将视图添加为某些控制器的子视图