Один из способов сделать это - загрузить представление из пера, а затем добавить его в качестве подпредставления к вашему MKAnnotationView.Вам не нужно создавать какие-либо новые контроллеры.
Сначала создайте свой подкласс MKAnnotationView со свойством, в которое вы будете загружать пользовательское представление NIB:
@interface MapAnnotationView : MKAnnotationView
@property (nonatomic, retain) IBOutlet UIView* loadedView;
Затем вМетод init для этого класса, загрузите перо и добавьте в качестве подпредставления:
- (id)initWithAnnotation:(id <MKAnnotation>)annotation reuseIdentifier:(NSString*)reuseIdentifier
{
self = [super initWithAnnotation:annotation reuseIdentifier:reuseIdentifier];
if (self != nil)
{
[[NSBundle mainBundle] loadNibNamed:@"MyCustomView" owner:self options:nil];
if (loadedView){
[self addSubview:loadedView];
}
}
return self;
}
Наконец, создайте свой NIB MyCustomView (как UIView).Сделайте владельцем файла вышеуказанный класс MapAnnotationView и присоедините представление к IBOutlet, определенному выше.
Вот и все.