Работа с контроллером панели измерений (пример 2)

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

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

Описание

В данном примере отображается представление контроллера панели измерений, определяется количество измерений и ячеек в таблице на данной панели.

Необходимые файлы

В базовый пример «Отображение экспресс-отчёта» необходимо добавить следующий файл:

Исходный код

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

// Получаем контроллер для работы с экспресс-отчётом
MAExpressAnalysisReportViewController *contr = (MAExpressAnalysisReportViewController *)m_controller;
// Получаем делегат для работы с экспресс-отчётом
EAReportDelegateImpl *delegate = [contr delegate];
// Получаем панель измерений
id dimensionsPanel = [delegate dimensionsPanel];
NSLog(@"Количество измерений: %d", [dimensionsPanel dimensionsCount]);
if([dimensionsPanel tableView] != nil) {
    UITableView *tableView = [dimensionsPanel tableView];
    NSLog(@"Количество ячеек в таблице: %d", [tableView numberOfRowsInSection:0]);
    } else {
    NSLog(@"Табличное представление не определено");
}
// Создаём объект для работы с таблицей на панели измерений
DimensionsPanelTableProtocolImpl *dimensionsPanelTableDelegate = [DimensionsPanelTableProtocolImpl new];
[dimensionsPanelTableDelegate setDimensionsPanel: dimensionsPanel];
// Обновляем панель измерений
[dimensionsPanelTableDelegate update];
// Удаляем все дочерние представления окна
NSArray *subviews = [self.view subviews];
for(UIView *subView in subviews)
{
    [subView removeFromSuperview];
}
// Отображаем панель измерений
[self.view addSubview: [dimensionsPanel view]];

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

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

Количество измерений: 3

Количество ячеек в таблице: 3

Данные панели измерений обновлены


Результат выполнения примера не изменится, если строку кода:

[dimensionsPanelTableDelegate update];

заменим на следующую строку:

[dimensionsPanelTableDelegate deepUpdate];

В консоли среды разработки будет по-прежнему выведено уведомление об обновлении данных панели измерений.

См. также:

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