Xcode 4: использование NavigationController для создания нескольких уровней UITableViews

#xcode4

#xcode4

Вопрос:

Я хотел бы использовать NavigationController для создания нескольких уровней UITableViews. Я начинаю с RootViewController, созданного Xcode для нового проекта NavigationController, в котором отображается таблица, и я могу выбрать строку, которая помещается в стек навигации, чтобы отобразить другую таблицу, используя FirstTable.xib и связанные файлы. Когда я затем выбираю строку в этой таблице, я снова нажимаю на стек навигации, чтобы отобразить третью таблицу (SecondTable.xib), но на этом этапе отображаются только пустые ячейки. Очевидно, мне не хватает чего-то, что заставит эту навигацию работать должным образом. Есть идеи?

Вот базовая структура, которую я использую для кода на уровнях ниже RootViewController с опущенными очевидными битами, например, cellForRowAtIndexPath метод

 @interface FirstTable : UITableViewController {
    NSArray     *firstList;
}
@property (nonatomic, retain) NSArray *firstList;

@implementation FirstTable
@synthesize firstList;

- (id)initWithStyle:(UITableViewStyle)style
{
    self = [super initWithStyle:style];
    if (self) {
        self.title = @"First Table View";
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];

    firstList = [[NSMutableArray alloc] initWithObjects:
             @"Clubs amp; officials",
             @"Grade",
             nil];
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
     UITableViewController *secondView = [[UITableViewController alloc] initWithNibName:@"SecondTable" bundle:nil];
     [self.navigationController pushViewController:secondView animated:YES];
     [secondView release];
}
  

Ответ №1:

Хорошо, похоже, что ответ заключается в использовании этого кода чуть выше нажатия ViewController

 UITableViewController *secondView = [[NSClassFromString(@"SecondTable") alloc] initWithNibName:@"SecondTable" bundle:nil];
  

Я предполагаю, что я не создавал экземпляр класса из создания UITableViewController для второй таблицы. Но тогда почему исходная версия работает для первой таблицы, то есть той, которая вызывается RootViewController ?