2013-04-29 75 views
0

我試圖與SEGUE數據傳遞回來的時候,和我下面這樣的回答:How to Pass information Back in iOS when reversing a Segue?警告設定的委託

然而,當我試圖把這一行:

@property (nonatomic) id<MyDataDelegate> delegate; 

我得到以下警告:

enter image description here

當我試圖把像這樣的第一個視圖控制器:

@interface ContainerViewController : UIViewController <MyDataDelegate> 

我得到的錯誤「Cannot find protocol declaration for 'MyDataDelegate'」我確實包括其他的頭文件...

+0

@property(weak,nonatomic)id delegate; – Sovannarith 2013-04-29 10:16:30

回答

4

從它看起來像您要添加的屬性的UIPageViewController一個子類的錯誤消息。但UIPageViewController已具有不同類型的delegate屬性。

你因此需要或者你的財產別的重命名爲,或聲明MyDataDelegate符合UIPageViewControllerDelegate,使你的財產的重聲明與基類的版本不兼容:

@protocol MyDataDelegate <UIPageViewControllerDelegate> 

... 

@end 

您還需要聲明你的財產與weak屬性。

+0

這確實修復了警告,但是當我添加@interface ContainerViewController:UIViewController 時,我仍然收到錯誤,就像我在我的問題中所說的那樣 – nonuma 2013-04-29 10:16:56

+0

您可以在代碼中聲明協議嗎? – vacawama 2013-04-29 10:21:02

+1

@nonuma如果您的代理頭文件也包含控制器頭文件,則您具有循環依賴性。確保你的協議不包含控制器的頭部(可能需要前向聲明'@class ...')。 – Sulthan 2013-04-29 10:21:35