为什么我不能将View Controller用作属性?

时间:2012-11-13 01:26:01

标签: iphone ios xcode uiviewcontroller

出于某种原因,我在这里收到错误

#import "OtherViewController.h"

@interface ViewController: UIViewController



@property (nonatomic, strong) OtherViewController *otherViewController;

这给了我一个错误,说'未知类型名称OtherViewController'为什么会发生这种情况?这不是向其他视图控制器发送消息的方法。如果是这样你应该怎么做呢?

3 个答案:

答案 0 :(得分:1)

根据您发布的内容,您发布的内容没有任何问题。话虽这么说,您不需要为其他VC声明属性。您需要做的是在OtherViewController上声明一个公共属性(如NSString),然后您可以从ViewController类访问该属性。类似的东西(假设您使用的是Storyboard):

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

答案 1 :(得分:1)

尝试导入.m文件中的标题

#import "OtherViewController.h"

并在标题.h文件中添加

@class OtherViewController;

答案 2 :(得分:0)

我无法确定,因为没有给出足够的信息,但如果您有循环导入,我会看到类似的错误。也就是说,如果OtherViewController.h包含#import ViewController。

所以,你可以尝试在其中一个中使用@class来避免循环引用:

@class OtherViewController;

确保包含在ViewController.m中:

#import "OtherViewController.h"