Отображение панели действий над отчётом и панели настроек текущего представления данных

Требования к операционной системе: iOS 5.0 и выше.

Мобильное устройство: iPad.

Описание

В данном примере отображается представление, следующее за текущим представлением, и панель действий над отчетом. Через три секунды после выполнения примера отображается панель настроек текущего представления данных. Также в консоль среды разработки выводится следующая информация:

Исходный код

Для выполнения примера необходимо разместить взамен метода executeExample класса ViewController (см. раздел «Отображение экспресс-отчёта») следующий код:

// Выполняем пользовательский пример
-(void) executeExample {
    // Получаем контроллер представления отчета
    MAExpressAnalysisReportViewController *contr = (MAExpressAnalysisReportViewController*)m_controller;
    // Отображаем представления со следующим индексом после текущего
    [contr setDataViewControllerWithIndex: [contr selectedDataViewControllerIndex] + 1];
    // Получаем текущее представление
    id<MADataViewControllerProtocol> activeController = [contr activeDataViewController];
    // Выводим информацию о текущем представлении
    NSLog(@"Индекс текущего представления: %i", [MAExpressAnalysisReportViewController selectedIndex]);
    NSLog(@"Признак отображения заголовка: %hhd", [contr showTitle]);
    NSLog(@"Заголовок текущего представления: %@", [activeController title]);
    NSLog(@"Количество представлений отчета: %i", [[contr dataViewControllers] count]);
    NSLog(@"Количество кнопок, созданных для выполнения действий над отчётом: %i", [[contr createRightBarButtonItems] count]);
    if([contr hasSettingsController]){
        // Получаем контроллер настроек отчета
        BaseSettingsViewController *reportSettings = (BaseSettingsViewController*)[contr reportSettingsController];
        // Получаем ячейку с переключателем
        SettingsSwitchTableViewCell *switchCell = [[reportSettings cells] allValues][0];
        // Устанавливаем состояние переключателя
        [switchCell switchToStateOn:NO];
    }
    // Отображаем панель действий над отчетом
    UIViewController<PopoverContainedControllerProtocol> *reportActionsController = [contr reportActionsController];
    CGRect rect = CGRectMake(50, 50, 0, 0);
    [contr showInPopover:reportActionsController fromView:[self view] inRect:rect permittedArrowDirections:UIPopoverArrowDirectionAny];
    // Запускаем таймер на три секунды
    [NSTimer scheduledTimerWithTimeInterval:3.0f target:self selector:@selector(timerEvent) userInfo:nil repeats:NO];
}
// Обрабатываем событие таймера
- (void) timerEvent{
    // Получаем контроллер представления отчета
    MAExpressAnalysisReportViewController *contr = (MAExpressAnalysisReportViewController*)m_controller;
    // Отображаем панель настроек представления данных
    CGRect rect2 = CGRectMake(250, 250, 0, 0);
    UIViewController<PopoverContainedControllerProtocol> *viewSettingsController = [contr viewSettingsController];
    [contr showInPopover:viewSettingsController fromView:[self view] inRect:rect2 permittedArrowDirections:UIPopoverArrowDirectionAny];
}

В результате выполнения примера будет отображено представление с индексом, следующим за индексом текущего представления, будет отображена панель действий над отчетом:

Также в консоль среды разработки будет выведена информация об отчете:

Индекс текущего представления: 1

Признак отображения заголовка: 1

Заголовок текущего представления: График

Количество представлений отчета: 4

Количество кнопок, созданных для выполнения действий над отчётом: 5

Через три секунды будет отображена панель настроек текущего представления:

См. также:

Примеры использования компонентов