Tableview推送到不同的视图

时间:2012-11-26 09:12:57

标签: iphone ios xcode

我有这个代码,当按下一个单元格时,它会推送到一个新视图。此新视图根据按下的单元格的名称更改其标题。但是,所有单元格的视图都是相同的,如果我在一个单元格下更改某些内容,则会更改每个其他单元格的视图。我怎么能这样做,所以每个单元格的每个视图都不同,而不会创建大量的视图;这是不切实际的。谢谢。

推送代码:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
[self.tableView deselectRowAtIndexPath:indexPath animated:YES];

ACollection *newView = [[ACollection alloc] init];
newView.template = [[Global collections] objectAtIndex:indexPath.row];

newView.theTitle = [self.tableView cellForRowAtIndexPath:indexPath].textLabel.text;
[self.navigationController pushViewController:newView animated:YES];
}

2 个答案:

答案 0 :(得分:1)

theTitle似乎是您在细胞选择上设置的局部变量。 但是,导航控制器在导航项中设置视图控制器的标题。 因此,您可以设置AVCollections标题,如tis:

newView.navigationItem.title = [self.tableView cellForRowAtIndexPath:indexPath].textLabel.text;
在细胞选择期间

答案 1 :(得分:0)

好吧,现在考虑我们在数组中有字符串。(数组项的数量等于单元格的数量。或者我们可以说你正在从数组中加载细节。)。

首先,在didSelectRowAtIndexPath:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {    
         // Here we got the name of the item we are currently going to load
         NSString *item_Name   =   [contentArray objectAtIndex: indexPath.row];
         ViewController *yourViewController   =  [[ViewController alloc] initWithNIBName: @"ViewController" bundle: nil];
         yourViewController.navigationItem.title  =  item_Name;
         [self.navigationController pushViewController: yourViewController animated: YES];
} 

或者像lukya说你可以使用

NSString *item_Name   =   [self.tableView cellForRowAtIndexPath:indexPath].textLabel.text;

如果要将单元格的标题标签设置为详细视图的标题。

希望这有帮助。