UIViewControllerだけでなく、適切なクラスでポインタを宣言します。
循環宣言を回避するには、を使用します@class MyOwningViewController;
。例:MyContainedViewController.h:
@class MyOwningViewController;
@interface MyContainedViewController {
MyOwningViewController* owningViewController;
}
@property (weak, nonatomic) MyOwningViewController* owningViewController;
@end;
ただし、通常のMyOwningViewController.hをMyContainedViewController.mに含めます(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];
}