@ Анкит Шривастава: все возможно
В didSelectRowAtIndexPath
создайте тот же экземпляр табличного представления и отправьте его оттуда, обновив источник данных для этой конкретной строки.Если вам нужна дополнительная помощь, дайте мне знать.Я делал это раньше.
Например, если ваш контроллер табличного представления называется RootViewController
, ваш didSelectRowAtIndexPath
метод должен выглядеть следующим образом:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if ([[self.navigationController viewControllers] count] < 3) {
RootViewController *detailViewController = [[RootViewController alloc] initWithStyle:UITableViewStylePlain];
detailViewController.rootArray = [self.rootArray objectAtIndex:indexPath.row];
[self.navigationController pushViewController:detailViewController animated:YES];
[detailViewController release];
}
[self.tableView deselectRowAtIndexPath:indexPath animated:YES];
}
и numberOfRowsInSection
:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [rootArray count];
}
rootArray
- это массив, содержащий информацию, отображаемую в текущем контроллере табличного представления, и создается из мастер-массива, ранее созданного в делегате или любом другом мастер-классе с доступом к вашему контроллеру.Вот так (созданный в делегате в моем примере):
NSArray *array1 = [NSArray arrayWithObjects:@"1", @"2", @"3", nil];
NSArray *array2 = [NSArray arrayWithObjects:@"4", @"5", nil];
NSArray *array3 = [NSArray arrayWithObjects:@"6", @"7", nil];
NSArray *array4 = [NSArray arrayWithObjects:@"8", @"9", nil];
NSArray *array5 = [NSArray arrayWithObjects:@"10", @"11", @"12", nil];
NSArray *array6 = [NSArray arrayWithObjects:@"14", @"15", @"13", nil];
NSArray *array7 = [NSArray arrayWithObjects:@"16", @"17", nil];
NSArray *array8 = [NSArray arrayWithObjects:@"19", @"18", nil];
NSArray *array9 = [NSArray arrayWithObjects:@"20", @"21", @"22", nil];
NSMutableArray *mutable1 = [NSMutableArray arrayWithObjects:array1, array2, array3, nil];
NSMutableArray *mutable2 = [NSMutableArray arrayWithObjects:array4, array5, array6, nil];
NSMutableArray *mutable3 = [NSMutableArray arrayWithObjects:array7, array8, array9, nil];
self.initialArray = [NSMutableArray arrayWithObjects:mutable1, mutable2, mutable3, nil];
И viewDidLoad
для текущего tableViewController, поэтому у вас есть массив для первой загрузки:
- (void)viewDidLoad
{
[super viewDidLoad];
YourAppDelegate *appDelegate = (YourAppDelegate *)[[UIApplication sharedApplication] delegate];
if ([[self.navigationController viewControllers] count] == 1) {
self.rootArray = appDelegate.initialArray;
}
}