Как отправить сообщение на кнопку из разных представлений? - PullRequest
0 голосов
/ 17 июня 2011

У меня есть приложение с основным видом, который действует как контроллер представления.Этот основной вид имеет 3 кнопки.У меня есть 3 подпредставления, которые я поменяю местами в этом главном окне, контролируемое тремя кнопками.У каждого из подпредставлений есть кнопка.Когда эта кнопка нажата, я хочу отключить 3 кнопки на главном экране, пока кнопка не будет нажата снова.Есть ли способ отправить сообщение между видами, чтобы отключить кнопки?

Ответы [ 3 ]

1 голос
/ 17 июня 2011

Это звучит как переключение для меня.Больше похоже на настройку.Если вы думаете об этом, это должно войти в NSUserDefaults.И когда вы запускаете этот конкретный вид, вероятно, в viewWillAppear: или viewDidAppear:, сделайте это,

BOOL controlsEnabled = [[NSUserDefaults standardUserDefaults] boolForKey:@"ControlsEnabledKey"];

button1.enabled = controlsEnabled;
button2.enabled = controlsEnabled;
button3.enabled = controlsEnabled;

Чтобы сохранить значение на этой кнопке, нажмите

BOOL controlsEnabled = [[NSUserDefaults standardUserDefaults] boolForKey:@"ControlsEnabledKey"];

[[NSUserDefaults standardUserDefaults] setBool:!controlsEnabled forKey:@"ControlsEnabledKey"];
[[NSUserDefaults standardUserDefaults] synchronize];

note Поскольку boolForKey: вернет NO, если ключ не найден, я предлагаю вам установить значение YES при запуске приложения, если вы хотите, чтобы элементы управления были включены при запуске.

0 голосов
/ 17 июня 2011

Установите основной вид / контроллер в качестве делегата внутренних видов, определите протокол, в котором вы определяете метод, скажем, toggleMainButtons, VC ​​соответствует этому протоколу и реализует сообщение.На кнопках addTarget:self.delegate action:@selector(toggleMainButtons) forControlEvents:UIControlEventTouchUpInside.

0 голосов
/ 17 июня 2011

Используйте NSNotifications, чтобы опубликовать уведомление о том, что кнопки были нажаты.

 [[NSNotificationCenter defaultCenter] postNotificationName:@"Button1Pressed" object:self userInfo:info];

И затем добавьте наблюдателей так, чтобы они слушали эти уведомления.

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(buttonPress:) name:@"Button1Pressed" object:nil];

Теперь внедрите buttonPress

Прочтите ЗДЕСЬ для руководства по NSNotification и научитесь его использовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...