Я новичок, работающий над задачей C. У меня одна проблема.У меня есть контроллер панели вкладок, содержащий три контроллера представления, из которых я обеспокоен только двумя VC, названными "Setting" и "BBVC".«BBVC» имеет кнопку UIB, а «Setting» - переключатель UIS (см. Изображение ниже).
Когда нажата кнопка «B», в представлении панели вкладок выполняется код, представленный ниже:
- (void)centerButtonTapped:(id __unused)sender {
BBVC *vc = [[BBVC alloc] init];
UINavigationController *nc = [[UINavigationController alloc] initWithRootViewController:vc];
[self presentViewController:nc animated:YES completion:nil];
}
BBVC загружается как всплывающее окно UP
Моя цель - я хочу изменить значение «UISwitch» на основе события действия «UIButton».
Случай 1: Не включено Настройка View
В этом случае после нажатия кнопки UIB, когда я нахожусь на «Настройка» ВК, цель может быть достигнута с помощью viewWillappear и UserDefault, как показано ниже:
- (void)viewWillAppear:(BOOL)animated
{
NSLog(@"viewWillAppear");
[super viewWillAppear:animated];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[Switch setOn:[defaults boolForKey:@"EnableLIVE"] animated:YES];
}
Случай 2:
В этом случае я уже на ВК «Настройки» (т. Е. Представление настроек уже загружено), и когда нажимается кнопка «B» на панели вкладок, она загружается в виде всплывающего окна, как показано на рисунке ниже.Я пытаюсь достичь своей цели, но она не работает.
Попытка 1: в настройке VC я обновил код в методе "viewDidAppear", ново время отладки я узнал, что после закрытия BBVC метод viewDidAppear не вызывается.
-(void)viewDidDisappear:(BOOL)animated
{
NSLog(@"viewDidDisappear");
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[Switch setOn:[defaults boolForKey:@"EnableLIVE"] animated:YES];
}
Попытка 2:
Использование Делегата и протоколов:
У меня естьиспользуется делегат и протоколы, которые работают нормально, но в этом случае адрес UISwitch равен нулю.См. Изображение ниже
Примечание: UISwitch создается программно.
Я ничего не понимаю здесь.Любая помощь приветствуется.Спасибо.