Создание просмотрщика листов регламентного отчета

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

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

Описание

В данном примере описывается создание просмотрщика листов регламентного отчета. После запуска примера выполняются следующие операции:

Исходный код

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

// Удаляем все дочерние представления окна
NSArray *reportSubviews = [self.view subviews];
for(UIView *subView in reportSubviews)
{
    [subView removeFromSuperview];
}
// Получаем представление регламентного отчета
MAProceduralReportViewController *proceduralReportController = (MAProceduralReportViewController *)m_controller;
// Получаем массив представлений в регламентном отчете
NSArray *dataViewControllers = [proceduralReportController dataViewControllers];
// Перебираем в цикле представления регламентного отчета
for( UIViewController *controller in dataViewControllers)
{
    // Проверяем, является ли текущее представление просмотрщиком листов
    if([controller isMemberOfClass:[MAProceduralReportDataViewController class]])
    {
        // Получаем представление просмотрщика листов
        MAProceduralReportDataViewController *dataViewController =(MAProceduralReportDataViewController *)controller;
        // Получаем источник данных регламентного отчета из представления просмотрщика листов
        id<MAProceduralReportViewControllerDelegate> dataSource = [dataViewController dataSource];
        // Создаем новое представление просмотрщика листов
        MAProceduralReportDataViewController *createdDataViewController = [[MAProceduralReportDataViewController alloc] initWithDataSource:dataSource];
        // Получаем представление просмотрщика регламентных отчетов
        MAProceduralReportDataViewControllerBase *reportDataViewControllerBase = (MAProceduralReportDataViewControllerBase *)createdDataViewController;
        // Получаем PNG-данные первой страницы отчета для скриншота
        NSData *firstPageData = [reportDataViewControllerBase prepareScreenshotOfTheFirstPage];
        // Создаем изображение на основе полученных данных
        UIImage *image = [[UIImage alloc] initWithData:firstPageData];
        // Задаем цвет фона окна
        [self.view setBackgroundColor:[UIColor whiteColor]];
        // Выводим на экран мобильного устройства полученное изображение
        UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
        [self.view addSubview:imageView];
    }
}

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

См. также:

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