Справка по простой навигации по таблицам - PullRequest
2 голосов
/ 21 мая 2011

Привет
Мое представление - это табличное представление внутри контроллера навигации. Я использовал чужой код, чтобы сделать это, и я знаю, что это было намерение человека при написании кода, но когда я касаюсь ячейки таблицы, это приводит меня к такому же представлению. Как бы вы критиковали приведенный ниже код для загрузки разных перьев с каждой ячейкой таблицы.

MoreTableViewController.h

@interface MoreTableViewController : UITableViewController <UITableViewDelegate, UITableViewDataSource> {
IBOutlet UITableView *moreTableView;
NSMutableArray *moreArray;
AboutDetailViewController *aboutDetailViewController;

}

@property (nonatomic, retain) NSMutableArray *moreArray;
@property (nonatomic, retain) AboutDetailViewController *aboutDetailViewController;
@end

MoreTableViewController.m

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSInteger row = [indexPath row];
if (self.aboutDetailViewController == nil) {
    AboutDetailViewController *aboutD = [[AboutDetailViewController alloc] initWithNibName:@"AboutDetailViewController" bundle:nil];
    self.aboutDetailViewController = aboutD;
    [aboutD release];

}
aboutDetailViewController.title = [NSString stringWithFormat:@"%@", [moreArray objectAtIndex:row]];

ROSS_APP_7AppDelegate *delegate = [[UIApplication sharedApplication] delegate];
[delegate.moreNavController pushViewController:aboutDetailViewController animated:YES];

}

Должен ли я сделать заявление if? Если так, как бы я написал код. Мне нужна вся помощь, которую я могу получить здесь. Спасибо за вашу помощь.

Ответы [ 2 ]

1 голос
/ 21 мая 2011
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    NSInteger row = [indexPath row];
        switch(row) {
          case 0:
          // First row
          // Push xib
          break;

          case 1:
          // Second row
          // Push xib
          break;
       }
}
0 голосов
/ 21 мая 2011
if(indexPath.row == 0)
{
    AboutDetailViewController *aboutD = [[AboutDetailViewController alloc] initWithNibName:@"AboutDetailViewController" bundle:nil];
    self.aboutDetailViewController = aboutD;
    [aboutD release];
}
else if(indexPath.row == 1)
{

}
else if(indexPath.row == 2)
{

}

Хорошо ....

И вы должны написать все эти вещи в следующем методе

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
...