I have two UIViewController, each has it\'s delegate and is calling one or the other. One class is called TopicViewController and the other is MentionViewController, the cod
It is really strange. The MentionViewController needs the header file of DetailViewController, and the DetailViewController needs MentionViewController's header file. It is a cycle
. Maybe you need to create a empty header file, and put all protocol inside it. For example,
MyProtocol.h
@class DetailViewController;
@class MentionViewController;
@protocol DetailViewControllerDelegate
- (void) viewController:(DetailViewController*)viewCon withText:(NSString *) text;
@end
@protocol MentionViewControllerDelegate
- (void) viewController:(MentionViewController*)viewCon withUsername:(NSString *) text;
@end
And add #import MyProtocol.h
inside DetailViewController.h and MentionViewController.h.
I think your intuition is correct.
You should be able to solve this problem by declaring the 2 protocols in a header file of their own, then import this file from your .m files. This will break the cycle.
You need to use forward declaration for the protocols and only import the headers in the implementation file.