NSnotifiaction сомнения
У меня есть UISwitchcontroller на моей странице настроек, чтобы изменить изображение на главной странице. Так что я помещаю уведомление от еды страницы на главную страницу... но только одно уведомление я активен каждый раз, мой код переключения страницы настройки выглядит следующим образом
-(IBAction)_clickswitchlowlight:(id)sender
{
if(switchControll.on){
[switchControll setOn:YES animated:YES];
[[NSNotificationCenter defaultCenter] postNotificationName:NOTIF_lowlighton object:nil];
}
else{
[switchControll setOn:NO animated:YES];
[[NSNotificationCenter defaultCenter] postNotificationName:NOTIF_lowlightoff object:nil];
}
}
на моей главной странице. я пишу этот код
extern NSString * const NOTIF_lowlighton;
extern NSString * const NOTIF_lowlightoff;
в. м выше реализации главной страницы я пишу это
NSString * const NOTIF_lowlighton = @"lowlighton";
NSString * const NOTIF_lowlightoff = @"lowlightoff";
в viewwillappear я пишу этот код
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(clicklowlighton:) name:@"lowlighton" object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(clicklowlightoff:) name:@"lowlightoff" object:nil];
}
тогда этот код для изменения изображения
- (void)clicklowlighton:(NSNotification *)notif
{
[[self multiPageView] setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"bgipad"]]];
}
- (void)clicklowlightoff:(NSNotification *)notif
{
[[self multiPageView] setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"bglowlight@2x"]]];
}
я получаю только уведомление о нажатии на кнопку, я не получаю первое уведомление... что-то отсутствует в моем коде? заранее спасибо.
1 ответ
Привязать вашу функцию к событию: UIControlEventValueChanged для этой функции
-(IBAction)_clickswitchlowlight:(id)sender
{
if(switchControll.on){
[[NSNotificationCenter defaultCenter] postNotificationName:NOTIF_lowlighton object:nil];
}
else{
[[NSNotificationCenter defaultCenter] postNotificationName:NOTIF_lowlightoff object:nil];
}
}