У меня есть два ViewControllers. У одного есть кнопка, а у другого ViewController есть сегментированный элемент управления, чтобы включить или выключить эту кнопку. Мой вопрос: как я могу получить доступ к кнопке из ViewController 1 для отключения в ViewController 2? Благодаря!Кнопка доступа от другого ViewController в iOS?
ответ
Самый простой способ - объявить кнопку как свойство в заголовочном файле и получить доступ непосредственно из другого файла. Однако это некрасиво и увеличивает связь кода. Вы можете использовать один контроллер как другой делегат и сообщить делегату, когда состояние управления сегментом изменилось.
Вместо того, чтобы объявить эту кнопку как свойство в файле заголовка
написать метод в viewcontroller1, который имеет кнопку и в этом методе включения кнопки включения/выключения
Теперь вы можете вызвать этот метод из другой viewcontroller2, который имеет сегментированное управление для включения или выключения кнопки.
или же вы можете использовать уведомление о
В View Controller 1:
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(togglebutton) name:@"togglebutton" object:nil];
и метод
-(void)togglebutton{
//turn button on/off
}
В ViewController 2:
[[NSNotificationCenter defaultCenter]postNotificationName:@"togglebutton" object:nil];
Возможно, не самый лучший Solut ion, но я думаю, что ваш сегментированный элемент управления - это какой-то переключатель для вашего приложения.
В этом случае в вашем ViewController2, когда вы измените значение вашего сегментированного управления, вы можете написать его NSUserDefaults
так:
-(void)segmentedControlChanged:(id)sender
{
UISegmentedControl *ctrl = (UISegmentedControl *)sender;
[[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithInt:ctrl.selectedSegmentIndex] forKey:@"selectedIndex"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
Затем в viewDidAppear
методы ViewController1 «s , вы проверяете для значения SelectedIndex как так:
-(void)viewWillAppear:(BOOL)animated
{
NSNumber *selectedIndex = [[NSUserDefaults standardUserDefaults] valueForKey:@"selectedIndex"];
if(selectedIndex != nil)
{
if([selectedIndex intValue] == 0)
{
NSLog(@"do action 1");
}
else
{
NSLog(@"else do action 2");
}
}
}
бы ЧТ достаточно для ваших намерений?
- 1. Нынешняя раскадровка ViewController от другого ViewController
- 2. Изменение цвета viewController с другого viewController кнопка
- 3. Обновите WebView в ViewController от другого ViewController
- 4. IOS - Present ViewController от другой представил ViewController
- 5. IOS 5 - вызов ViewController из другого ViewController
- 6. Invalidate NSTimer от другого ViewController
- 7. Кнопка доступа с другого контроллера (Objective-C)
- 8. Кнопка доступа из другого класса
- 9. Функция вызова от другого ViewController
- 10. Present SCNView от другого ViewController
- 11. Активировать UISearchDisplayController от другого ViewController
- 12. Обновление UITextField из другого ViewController iOS
- 13. Отклонить ModalViewController от другого viewcontroller в iPhone
- 14. Change MasterViewController TabBarItem ярлык от другого ViewController
- 15. кнопка доступа к клику от другого .aspx страница
- 16. ios: Нажатие другого ViewController на вид модели
- 17. iOS Обновление ViewController UILabel из другого класса
- 18. ios Вызов назад viewController из другого класса
- 19. Как нажать Viewcontroller от rootViewController в iOS
- 20. Получить ответ от iOS SDK ViewController
- 21. Кнопка отключения от другого класса
- 22. Как отклонить viewcontroller внутри другого ViewController?
- 23. Инициализация данных после получения от другого ViewController
- 24. изменить ярлык от другого viewcontroller on swift
- 25. Как подобрать ViewController в SubView другого ViewController
- 26. Метод доступа от другого контроллера
- 27. переменные доступа от другого контроллера
- 28. refresh uitable из viewcontroller из другого viewcontroller
- 29. iOS Segue ViewController Caching
- 30. Зависит от подключения к Интернету. ViewController iOS