2012-06-27 80 views
1

的代表,我試圖把一個視圖控制器,像這樣:不能設置視圖控制器

SampleViewControllerB *svcb = [self.storyboard instantiateViewControllerWithIdentifier:@"viewB"]; 
svcb.delegate = self; 
[self.navigationController pushViewController:svcb animated:YES]; 

如果我刪除svcb.delegate = self;線,它編譯罰款和工作正常。但是,如果我嘗試添加它,它不會編譯並給出錯誤

Property 'delegate' not found on object of type 'SampleViewControllerB *' 

有誰知道如何解決這個問題嗎?提前致謝!

+3

'SampleViewControlerB'是否具有'delegate'屬性?我必須問。 – Linuxios

+0

@Linuxios我認爲UIViewControllers默認有一個委託屬性。現在修好了,我的錯!謝謝! – gtmtg

回答

2

這是你的問題。你必須在你的課堂上定義你自己的delegate屬性,並自己撥打電話。請務必記住製作委託協議!

+0

是的,我做了委託協議,但忘了實際上在我的.h文件中定義委託屬性。一旦它能讓我接受這個答案......感謝您的幫助! – gtmtg

+0

@gtm:很高興我能幫上忙。 – Linuxios

1

UIViewControler沒有委託財產,如果你需要一個委託添加到您的SampleViewControllerB你將需要明確定義它

+0

謝謝,現在修復!我認爲'UIViewController'有一個委託屬性... – gtmtg

+0

@gtm歡迎您,請不要忘記接受答案,如果它的工作:) –

0

對於您需要添加在SampleViewControllerB類的協議委託方法委託財產。

1

使parentViewController變量的.h SampleViewControllerB說的..

ParentViewController *parentObject ; 

,並使其在proprty相同

@property(nonatomic,retain) ParentViewController *parentObject ; 

和SampleViewControllerB類的.m合成

@synthesize parentObject ; 

現在使用你推動你的控制器的代碼

SampleViewControllerB *svcb = [self.storyboard instantiateViewControllerWithIdentifier:@"viewB"]; 
svcb.parentObject = self; 
[self.navigationController pushViewController:svcb animated:YES]; 

希望這將幫助你

+0

是然後在SampleViewControllerB類中對您的父母進行一個引用,並使該屬性和合成它...然後使用它.. dond給它的名字委託你可以給任何東西..並通過自己在這..並調用你的方法只是要編輯和使用它看到編輯部分... – Abhishek

+0

哦,我看...我已經有一些工作,但無論如何感謝。我會在未來嘗試。 – gtmtg

+0

作爲你的願望.. :) – Abhishek

相關問題