UITableViewController для UITabBarController's DetailViewController - PullRequest
1 голос
/ 28 марта 2012

Я сделал XML-парсер, который правильно отображает список в UITableViewController.Он передает несколько деталей, а также широту и длину для представления MKMap.Сначала моя установка состояла в том, чтобы перейти непосредственно от UITableViewController к DetailViewController, это работало отлично.Это правильные детали из XML для этой выбранной опции в списке.

Текущая настройка:

Navigation Controller > Table View > Detail View Controller

Я просто хочу немного переставить всю раскадровку.Вместо того, чтобы переходить непосредственно к DetailViewController, я хочу, чтобы он отправлялся в представление вкладок.

Новая настройка:

Navigation Controller > Table View > Tab Bar Controller - Detail View Controller 1
                                                       |_ Detail View Controller 2

Согласно моему NSLOG данные из представления таблицы передаются на вкладкуBar Bar Controller, но не для контроллеров детального вида, возможно ли в любом случае поднять эти данные в контроллеры детального вида?

Нет ошибок или предупреждений.Но вот некоторые фрагменты кода:

Это контроллер табличного представления, он отправляет правильные данные из последовательности на следующий контроллер.

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
  if([[segue identifier] isEqualToString:@"StadionDetail"]) { 
    StadionDetailViewController *detailViewController = [segue destinationViewController];
    NSIndexPath *myIndexPath = [self.tableView indexPathForSelectedRow]; 
    detailViewController.theList = [app.listArray objectAtIndex:[myIndexPath row]];
  }
}

Затем TabViewController правильно получает эти данные, но он не переносит эти данные в контроллеры подробного представления.

1 Ответ

2 голосов
/ 28 марта 2012

Если вы нажмете UITabBarController, вам придется перебрать его viewController и назначить данные каждому viewController.

как то так:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if([[segue identifier] isEqualToString:@"MyTabBarController"]) { 
        UITabBarController *tabBarController = [segue destinationViewController];
        for (MyFancyViewController *vc in [tabBarController viewControllers]) {
            vc.data = ...
        }
    }
}
...