Передача данных во вспомогательное представление - PullRequest
0 голосов
/ 14 марта 2011

Я создаю простое приложение, которое отображает информацию о большинстве марок автомобилей.

У меня есть rootViewController для отображения строки данных (например, Mercedes, BMW, Toyota и т. Д.) При касании какой-либо строки при загрузке rootViewControllerПосмотреть.С этой точки зрения я хочу отображать информацию для каждой марки автомобиля.Все описания брендов одинаковы (год создания, модели и т. Д.). Поскольку структура представлений будет одинаковой для всех марок автомобилей, для отображения информации я буду использовать только один контроллер представлений.

Проблема в том, что я не могу понять, как это сделать?Как передать данные описания из rootViewController в displayBrandInformation?

Ответы [ 2 ]

0 голосов
/ 14 марта 2011

Ваш rootViewController не загружает представление (или вообще не должен), он создает контроллер представления, который затем будет управлять подробным представлением.rootViewController должен предоставлять контроллеру подробного представления любые данные, которые ему понадобятся для его работы;в данном случае это, вероятно, объект, содержащий данные для конкретного бренда.

0 голосов
/ 14 марта 2011

Вы должны создать подкласс tableViewController, который в конечном итоге появляется в стеке навигационного контроллера. Внутри подкласса tableViewController у вас должен быть массив (или некоторая другая структура данных) для хранения соответствующей информации, и она должна быть представлена ​​как общедоступная (используя @synthesize). Затем, после того, как вы инициализируете новый tableView, но перед тем, как поместить его в стек, установите массив. Например, в вашем RootViewController.m:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)newIndexPath {
        SubmenuViewController *svc = [[SubmenuViewController alloc] initWithStyle:UITableViewStyleGrouped];
        svc.arr = someArray; //this array holds your entire Submenu, this should be based on whatever the user selected in newIndexPath.row
        [svc setTitle:@"Some Title"];
        [self pushViewController:svc animated:YES];
}

Поскольку SubmenuViewController является подклассом UITableViewController, внутри (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath, вы вернете правильную ячейку на основе массива arr.

Редактировать: я должен отметить, что в моем примере подклассы RootViewController UINavigationController

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...