Добавьте к этому вашему MKMapView.h
. файл:
@protocol MKMapViewDelegate <NSObject>
@required
// Put your required delegate methods here
-(void)myFirstRequiredMethod;
@optional
// Pute your optional delegate methods here
@end
И тогда вы можете использовать методы делегата в файле customSubClass.m
:
@interface customSubClass : MKMapView <MKMapViewDelegate>
-(void)myFirstRequiredMethod
{
NSLog(@"Hello");
}
@end
c.f. ссылка для получения дополнительной информации: http://www.idev101.com/code/Objective-C/delegate.html
EDIT (после комментария от OP) Иногда, вы не хотите, чтобы установить self
в качестве делегата от объекта. Вы можете отлично установить другой объект в качестве делегата.
@interface customDelegate : MyCustomDelegateClass <MKMapViewDelegate>
-(void)myDelegateMethod
{
NSLog("hello")
}
@end
Затем ваш customSubClass
должен иметь свойство типа customDelegate
customSubClass.h
:
@interface customSubClass : MKMapView <MKMapViewDelegate>
{
}
@property (nonatomic, weak) MyCustomDelegateClass *myCustomDelegate;
@property (nonatomic, strong) MKMapView *myMKMapView;
@end
customSubClass.m
:
@implementation MainViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.myMKMapView.delegate = self.myCustomDelegate
}
}
Если я не объявить интерфейс в. h file, я не могу получить к нему доступ в качестве подкласса. Поэтому я думаю, что мои квесты on был, как мне получить доступ к нему в качестве подкласса в другом контроллере представления, но отправить всех делегатов обратно в пользовательский делегат? –
Я отредактировал свой ответ. Я не уверен, чтобы полностью понять, чего вы хотите достичь, хотя – Randy
Это больше похоже на это! Благодаря! Разве делегаты не должны быть объявлены слабыми, хотя из-за ссылочных циклов? –