@Ankit塔瓦:一切皆有可能
在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;
}
}
我需要你的帮助。我知道如何修改数据源,但我不知道推UITableView。我该如何与你联系? – user403015
嗨,刚刚添加您的联系人在我的Skype。请接受我的请求。谢谢。 – user403015