Требования к операционной системе: iOS 5.0 и выше.
Мобильное устройство: iPad.
В данном примере реализовано отображение всплывающего окна с панелью действий над отчётом. Также в консоль среды разработки выводится описание скриншота содержимого отчета, заголовок отчета и размер PDF-файла с отчётом.
Для выполнения примера необходимо разместить взамен метода executeExample класса ViewController (см. раздел «Отображение экспресс-отчёта») следующий код:
// Функция для выполнения примера
-(void) executeExample {
// Получаем контроллер представления отчета
MAExpressAnalysisReportViewController *contr = (MAExpressAnalysisReportViewController*)m_controller;
// Загружаем состояние отчета, если есть данные состояния
if([[contr delegate] reportState] != nil)
[contr loadState];
else
[contr saveState];
// Выводим описание скриншота содержимого отчета
printf("\nОписание скриншота содержимого отчета: %s\n\n", [[[contr screenshot] description] UTF8String]);
// Выводим заголовок отчета
printf("\nЗаголовок отчета: %s\n\n", [[contr reportTitle] UTF8String]);
if([[contr reportTitle] compare: [contr pdfContentTitle]] != NSComparisonResult::NSOrderedSame){
// Выводим заголовок PDF-файла с отчётом
printf("\nЗаголовок PDF-файла с отчётом: %s\n\n", [[contr pdfContentTitle] UTF8String]);
}
// Выводим размер PDF-файла с отчётом
if([contr canGeneratePDFContent]){
[contr generatePDFWithCompletionBlock:^(NSData * data) {
printf("\nРазмер PDF-файла с отчётом: %i байт\n\n", [data length]);
}];
}
// Отображаем окно действий над отчетом
CGRect r = CGRectMake(50, 50, 0, 0);
[contr showInPopover:[contr reportActionsController] fromView:[self view] inRect:r permittedArrowDirections: UIPopoverArrowDirectionLeft];
// Запускаем таймер на три секунды
[NSTimer scheduledTimerWithTimeInterval:3.0f target:self selector:@selector(timerEvent) userInfo:nil repeats:NO];
}
// Обрабатываем событие таймера
-(void) timerEvent {
// Получаем контроллер представления отчета
MAExpressAnalysisReportViewController *contr = (MAExpressAnalysisReportViewController*)m_controller;
// Скрываем окно действий над отчетом
if([contr isPopoverShown])
[contr hidePopover];
}
Также необходимо заменить код в файле статичного примера MAExpressAnalysisReportViewController.mm в методе initWithDelegate: на следующий код:
// Инициализируем базовый класс контроллера
if ((self = [super initWithDelegate: delegate])) {
NSAssert(self.delegate, @"ReportDelegate not nil");
// Создаем контроллер панели измерений
m_panelViewController = [PanelViewController new];
[m_panelViewController setPanelTitle:NSLocalizedString(@"Layout", @"DimPanel:Title")];
// Создаем контроллер компоновки экрана отчета со сдвигающейся панелью измерений
m_splitViewController = [SplitViewController new];
m_splitViewController.panelViewController = m_panelViewController;
NNotificationCenterExt::addObserver(self, @selector(updateSplitViewTitle), kSetTimeLineCurrentIndex, nil);
}
return self;
В результате выполнения примера будет отображено всплывающее окно с панелью действий над отчетом:

Через три секунды после отображения панели всплывающее окно будет скрыто.
Также в консоль среды разработки будет выведена информация об отчете:
Описание скриншота содержимого отчета: <UIImage: 0x12db2110>
Заголовок отчета: GDP per capita, PPP (constant 2005 international $)
Размер PDF-файла с отчётом: 76268 байт
См. также: