Требования к операционной системе: iOS 5.0 и выше.
Мобильное устройство: iPad.
В данном примере описывается создание просмотрщика листов регламентного отчета. После запуска примера выполняются следующие операции:
извлекается представление регламентного отчета;
извлекается представление просмотрщика листов регламентного отчета;
извлекается источник данных регламентного отчета из представления просмотрщика листов регламентного отчета;
создается новое представление просмотрщика листов регламентного отчета;
из созданного представления извлекается представление просмотрщика регламентных отчетов;
из полученного представления просмотрщика извлекаются PNG-данные первой страницы отчета для скриншота;
создается изображение на основе полученных PNG-данных.
Для выполнения примера необходимо разместить в теле метода 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];
}
}
В результате выполнения примера на экране мобильного устройства будет отображена миниатюра первой страницы регламентного отчета:

См. также: