Импорт MPPopoverControllerDelegate.h в MPPopoverController.h и MPPopoverController.h должен выглядеть следующим образом:
Копия кода, вставленная из вопроса и отредактированная, была удалена.Следующий код скопирован из xcode.
MPPopoverControllerDelegate.h:
@class MPPopoverController;
@protocol MPPopoverControllerDelegate <NSObject>
@optional
- (void)popoverControllerDidDismissPopover:(MPPopoverController *)popoverController;
@end
MPPopoverController.h
@protocol MPPopoverControllerDelegate;
@interface MPPopoverController : UIViewController{
id<MPPopoverControllerDelegate> delegate;
}
@property (nonatomic, assign) id<MPPopoverControllerDelegate> delegate;
@end
MPPopoverController.m
@implementation MPPopoverController
@synthesize delegate;
//rest of view controller class.
Проблема в том, что в вашем интерфейсе MPPopoverController вы указываете <MPPopoverControllerDelegate>
.Это означает, что класс реализует этот протокол!Это неправильно, потому что класс является владельцем протокола.Так что ваша логика в какой-то момент неверна.