Вопрос

Хорошо, я сделал всплывающее окно с основным видом и все такое.Но я хочу, чтобы всплывающее окно вызывало действие в главном представлении при нажатии кнопки внутри всплывающего окна.

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 подумает об этой проблеме или кто-то придумал обходной путь.

Спасибо,

Мадхуп

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top