用正确的类声明指针,而不仅仅是 UIViewController。
为避免循环声明,请使用@class MyOwningViewController;
. 例如,MyContainedViewController.h:
@class MyOwningViewController;
@interface MyContainedViewController {
MyOwningViewController* owningViewController;
}
@property (weak, nonatomic) MyOwningViewController* owningViewController;
@end;
但是在 MyContainedViewController.m 中包含通常的 MyOwningViewController.h(除了可能在 MyOwningViewController.m 中包含 MyContainedViewController.h)。
MyOwningViewController.h:
#import "MyContainedViewConroller.h" // Though you could use @class here as well
@interface MyOwningViewController {
MyContainedViewController* containedViewController;
}
@property (strong, nonatomic) MyContainedViewController* containedViewController;
-(void) myMethod;
@end;
最后,在 MyContainedViewController.m 中:
#import "MyOwningViewController.h"
...
-(void) doSomething {
[owningViewController myMethod];
}