Я не мастер Objective-C, и у меня есть некоторые проблемы с чем-то простым в Javascript (создание и привязка слушателя) ... Просто не можете понять, как это сделать в Objective-C.UISlider делегат/привязка к другому объекту?
Итак, у меня есть UISlider. Всякий раз, когда пользователь начинает перетаскивать его, я хочу запустить функцию X из объекта (в этом случае MKAnnotation, но любой NSObject, Controller и т. Д. Должен быть способен слушать).
Является ли делегат правильным для использования? Я пробовал это без успеха:.
В моей ViewController.h
@protocol TimeSliderDelegate <NSObject>
- (void)sliderValueChanged:sender;
@end
@interface ViewController : UIViewController<MKMapViewDelegate>{
IBOutlet UISlider *timeSlider;
IBOutlet MKMapView *mapView;
id <TimeSliderDelegate> delegate;
}
@property (retain) id delegate;
Тогда, в моем ViewController.m, я обязан моей ValueChanged от моего UISlider к этому (опробованы [собственного делегата] и [отправитель делегата] без результата. .):
- (IBAction)timeSliderValueChanged:(id)sender {
[delegate sliderValueChanged:sender];
}
Он падает здесь, говоря косяк селектора находки sliderValueChanged для делегата, например ... Я до сих пор разработать остальную часть моего кода.
Мой тестовый объект является MKAnnotation, что я добавляю в моем MKMapView внутри моей ViewController, ничего фантазии здесь я просто добавить его, как это.
Annotation *annotation = [[Annotation alloc] init];
CLLocationDegrees lat = 0;
CLLocationDegrees lng = 0;
[(Annotation*) annotation setCoordinate:CLLocationCoordinate2DMake(lat, lng)];
[mapView addAnnotation:annotation];
Тогда в моем Annotation.h, я импортировать мой ViewController и установить его в качестве TimeSliderDelegate и реализации sliderValueChanged.
#import "ViewController.h"
@protocol TimeSliderDelegate;
@interface Annotation : MKAnnotation<TimeSliderDelegate>
- (void)sliderValueChanged:(id)sender;
Наконец, это был мой код в Annotation.m. Никогда не стреляли.
- (void)sliderValueChanged:(id)sender{
NSLog(@"state changed");
}
Тем не менее, пытаясь понять, как я могу заставить его стрелять sliderValueChanged в моей аннотации, но не совсем уверен, что если Im на трассе.
Если кто-нибудь более опытный может привести меня, это было бы весьма полезно :).
Вы решили его? пожалуйста, примите ответ, если это поможет. – calimarkus