Operating system requirements: iOS 5.0 or later.
Mobile device: iPad.
This example displays a popup window with a report action bar. The development environment console also displays description of report contents screenshot, report title and report PDF file size.
Executing the example requires to place the following code instead of the executeExample method of the ViewController class (see the Displaying of Express Report section):
// Function for example execution
-(void) executeExample {
// Get report view controller
MAExpressAnalysisReportViewController *contr = (MAExpressAnalysisReportViewController*)m_controller;
// Load report state if there is state data
if([[contr delegate] reportState] != nil)
[contr loadState];
else
[contr saveState];
// Display report contents screenshot description
printf("\nReport contents screenshot description: %s\n\n", [[[contr screenshot] description] UTF8String]);
// Display report title
printf("\nReport title: %s\n\n", [[contr reportTitle] UTF8String]);
if([[contr reportTitle] compare: [contr pdfContentTitle]] != NSComparisonResult::NSOrderedSame){
// Display report PDF file title
printf("\nReport PDF file title: %s\n\n", [[contr pdfContentTitle] UTF8String]);
}
// Display report PDF file size
if([contr canGeneratePDFContent]){
[contr generatePDFWithCompletionBlock:^(NSData * data) {
printf("\nReport PDF file size: %i bytes\n\n", [data length]);
}];
}
// Display report action bar
CGRect r = CGRectMake(50, 50, 0, 0);
[contr showInPopover:[contr reportActionsController] fromView:[self view] inRect:r permittedArrowDirections: UIPopoverArrowDirectionLeft];
// Start timer for 3 seconds
[NSTimer scheduledTimerWithTimeInterval:3.0f target:self selector:@selector(timerEvent) userInfo:nil repeats:NO];
}
// Handle timer event
-(void) timerEvent {
// Get report view controller
MAExpressAnalysisReportViewController *contr = (MAExpressAnalysisReportViewController*)m_controller;
// Hide action bar over report
if([contr isPopoverShown])
[contr hidePopover];
}
It is also required to replace the code in the static example file MAExpressAnalysisReportViewController.mm in the initWithDelegate: method with the following code:
// Initialize controller base class
if ((self = [super initWithDelegate: delegate])) {
NSAssert(self.delegate, @"ReportDelegate not nil");
// Create a dimension panel controller
m_panelViewController = [PanelViewController new];
[m_panelViewController setPanelTitle:NSLocalizedString(@"Layout", @"DimPanel:Title")];
// Create a report split view controller with sliding dimension panel
m_splitViewController = [SplitViewController new];
m_splitViewController.panelViewController = m_panelViewController;
NNotificationCenterExt::addObserver(self, @selector(updateSplitViewTitle), kSetTimeLineCurrentIndex, nil);
}
return self;
After executing the example a popup window with report action bar is displayed:

The popup window is hidden in three seconds after displaying the panel.
The development environment console also displays report information:
Report contents screenshot description: <UIImage: 0x12db2110>
Report title: GDP per capita, PPP (constant 2005 international $)
Report PDF file size: 76268 bytes
See also: