2010-08-23 93 views
1

任何想法如何添加我的控制器類作爲我的View類的滑塊的觀察者?如何在UISlider上添加觀察者

我試圖通過觀察的方式來實現這一目標:在我的控制器的viewDidLoad方法我打電話

[self addObserver:myView forKeyPath:@"myView.mySlider.value" options:NSKeyValueObservingOptionNew context:NULL]; 

,並在同一個控制器文件,我在執行:

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { 
    if ([keyPath isEqualToString:@"myView.mySlider.value"]) { 
     myView.myImgView.animationDuration = [[change valueForKey:NSKeyValueObservingOptionNew] intValue]; 
    } 
} 

但我的應用程序是崩潰。請幫助

+1

當應用程序崩潰時,您是否收到任何錯誤消息? :) – willcodejavaforfood 2010-08-23 08:37:26

+0

請編輯堆棧跟蹤和任何調試器控制檯輸出到您的問題。 – 2010-08-23 08:58:07

回答

1

我得到了問題。我錯誤地設置了觀察者。而不是調用自我的addObserver方法,我應該在我需要觀察的對象上調用它。

0

將滑塊連接到IBAction,就像使用按鈕一樣。只要滑塊更改其值,就會調用該操作。 如果需要在另一類更改的滑塊值中收到通知,請在IBAction中發送NSNotification,並在其他類中註冊該通知。

+0

我想通過觀察者的方式實現這一點: 在我的控制器的viewDidLoad方法裏面我打電話給 [self addObserver:myView forKeyPath:@「myView.mySlider.value」options:NSKeyValueObservingOptionNew context:NULL]; 和在同一個控制器文件我實現: - (無效)observeValueForKeyPath:(的NSString *)的keyPath ofObject:(ID)對象變化:(的NSDictionary *)變化上下文:(無效*)上下文 { \t \t如果( [keyPath isEqualToString:@「myView.mySlider.value」]){ \t \t myView.myImgView.animationDuration = [[change valueForKey:NSKeyValueObservingOptionNew] intValue]; \t \t \t} } 但我的應用程序崩潰。請幫忙。 – Abhinav 2010-08-23 08:24:47

+0

請以可讀的方式格式化該代碼。 – tobiasbayer 2010-08-23 08:30:32

+0

在我的控制器裏面viewDidLoad ==> [self addObserver:myView forKeyPath:@「myView.mySlider.value」options:NSKeyValueObservingOptionNew context:NULL]; (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { \t if([keyPath isEqualToString:@「myView.mySlider.value」]){ \t \t myView.myImgView.animationDuration = [[change valueForKey:NSKeyValueObservingOptionNew] intValue]; \t} } – Abhinav 2010-08-23 08:36:41

相關問題