0

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

#import "OtherViewController.h"

@interface ViewController: UIViewController



@property (nonatomic, strong) OtherViewController *otherViewController;

这给了我一个错误,说“未知类型名称 OtherViewController”为什么会发生在我身上?这不是向其他视图控制器发送消息的方式吗?如果是这样,你应该怎么做?

4

3 回答 3

1

从您发布的内容来看,您发布的内容没有任何问题。话虽如此,您不需要为其他 VC 声明属性。您需要做的是在 OtherViewController 上声明一个公共属性(如 NSString),然后您可以从 ViewController 类访问该属性。类似于(假设您使用的是故事板):

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
     if ([segue.identifier isEqualToString:@"MySegueID"]) {
         OtherViewController *ovc = segue.destinationViewController;
         ovc.myPublicNSStringProperty = @"Something";
     }
}
于 2012-11-13T02:53:51.790 回答
1

尝试在 .m 文件中导入标头

#import "OtherViewController.h"

并在头 .h 文件中添加

@class OtherViewController;
于 2012-11-13T08:43:28.000 回答
0

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

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

@class OtherViewController;

确保包含在您的 ViewController.m 中:

#import "OtherViewController.h"
于 2012-11-13T03:47:32.357 回答