Проблемы с циклическим импортом в Objective C & Cocoa Touch

У меня есть контроллер представления в Cocoa Touch, который определяет, когда устройство вращается, и переключается между представлениями двух контроллеров представления, которые у него есть: альбомной и портретной.

Я хочу, чтобы UIViewControllers в нем имели доступ к FRRRotatingViewController , точно так же, как все UIViewController могут получить доступ к UINavigationController , они внутри.

Итак, я создал подкласс UIViewController ( FRRViewController ), у которого будет свойство rotatingViewController .

Я также модифицировал FRRRotatingViewController , поэтому он использует FRRViewController вместо обычных UIViewControllers .

К сожалению, когда я включаю FRRRotatingViewController.h в FRRViewController.h (и наоборот), я, кажется, сталкиваюсь с проблемой циклического импорта. Не знаю, как это исправить. Есть предложения?

Вот код:

//
//  FRRViewController.h

#import <UIKit/UIKit.h>
#import "FRRRotatingViewController.h"

@interface FRRViewController : UIViewController

@end

//
//  FRRRotatingViewController.h

#import <UIKit/UIKit.h>
#import "FRRViewController.h"

@class FRRRotatingViewController;


@protocol FRRRotatingViewControllerDelegate

-(void) FRRRotatingViewControllerWillSwitchToLandscapeView: (FRRRotatingViewController *) sender;
-(void) FRRRotatingViewControllerWillSwitchToPortraitView: (FRRRotatingViewController *) sender;

@end


@interface FRRRotatingViewController : FRRViewController {
    // This is where I get the error:Cannot find interface declaration for
    // 'FRRViewController', superclass of 'FRRRotatingViewController'; did you 
    // mean 'UIViewController'?
}

@property (strong) UIViewController *landscapeViewController;
@property (strong) UIViewController *portraitViewController;

@property (unsafe_unretained) id<FRRRotatingViewControllerDelegate> delegate;

-(FRRRotatingViewController *) initWithLandscapeViewController: (UIViewController *) landscape andPortraitViewController: (UIViewController *) portrait;
-(void) deviceDidRotate: (NSNotification *) aNotification;

@end
5
задан KlimczakM 14 April 2016 в 09:54
поделиться