Вызов функции из всплывающего окна
-
20-09-2019 - |
Вопрос
Хорошо, я сделал всплывающее окно с основным видом и все такое.Но я хочу, чтобы всплывающее окно вызывало действие в главном представлении при нажатии кнопки внутри всплывающего окна.
MainView *mainView = [[MainView alloc] initWithNibName:@"MainView" bundle:nil];
[mainView doStuff];
Функция «dostuff» изменяет некоторые элементы в представлении.Например, предполагается изменить цвет панели инструментов.Я ввел команду печати, и она выполняется.Но по какой-то причине панель инструментов не меняет цвет.
- Я импортировал заголовок MainView во всплывающее окно.
- Я сделал @class для MainView во всплывающем окне.
- doStuff объявлен в заголовке MainView.
- IBOutlets также объявлены и подключены.
Есть идеи?
Решение
К сожалению, у нас нет прямого метода, который можно было бы использовать для проверки того, в каком представлении (контроллере представления) отображается всплывающее окно.В приложении на основе вкладок я делаю следующее:
New_iPadAppDelegate *appDel = (New_iPadAppDelegate *)[[UIApplication sharedApplication] delegate];
NSArray *viewConts = [(UINavigationController *)[[appDel tabBarController] selectedViewController] viewControllers];
MainViewController *viewController = (MainViewController *)[viewConts lastObject];
if([[viewController popoverController] isPopoverVisible]){
[viewController doStuff];
}
Надеюсь это поможет,
Я знаю, что это не лучший способ, надеюсь, что Apple подумает об этой проблеме или кто-то придумал обходной путь.
Спасибо,
Мадхуп