2012-11-13 78 views
0

由於某種原因,我得到一個錯誤在這裏爲什麼我無法將我的View Controller用作屬性?

#import "OtherViewController.h" 

@interface ViewController: UIViewController 



@property (nonatomic, strong) OtherViewController *otherViewController; 

這給了我一個錯誤說「未知類型名稱OtherViewController」爲什麼會這樣對我?這不是將消息發送到其他視圖控制器的方式。如果是這樣,你應該怎麼做?

+1

你確定那裏沒有拼寫錯誤嗎?你會得到任何其他編譯錯誤,特別是在包含的頭文件中? – Thilo

回答

1

從您發佈的內容來看,您發佈的內容沒有任何問題。這就是說,你不需要爲其他VC聲明一個屬性。你需要做的是在OtherViewController上聲明一個公共屬性(比如一個NSString),然後你可以從ViewController類訪問該屬性。喜歡的東西(假設你使用故事板):

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
    if ([segue.identifier isEqualToString:@"MySegueID"]) { 
     OtherViewController *ovc = segue.destinationViewController; 
     ovc.myPublicNSStringProperty = @"Something"; 
    } 
} 
0

我不能確切知道,因爲有沒有給予足夠的信息,但我已經看到了類似的錯誤,如果你有圓形進口。也就是說,如果OtherViewController.h包含#import ViewController。

所以,你可以嘗試在其中一人用@class避免循環引用:

@class OtherViewController; 

的,一定要在你的ViewController.m包括:

#import "OtherViewController.h" 
1

嘗試導入頭中的.m文件

#import "OtherViewController.h" 

,並在頭.h文件中添加

@class OtherViewController; 
相關問題