0

セルが押されたときに新しいビューにプッシュするこのコードがあります。この新しいビューは、押されたセルの名前に基づいてタイトルを変更します。ただし、ビューはすべてのセルで同じです。あるセルの下で何かを変更すると、他のセルごとにビューが変更されます。ビューの負荷を作成せずに、各ビューがセルごとに異なるようにするにはどうすればよいですか。これは実用的ではありません。ありがとうございました。

プッシュコード:

-(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];
}
4

2 に答える 2

1

theTitle は、セル選択時に設定しているローカル変数のようです。ただし、Navigation Controller は、View Controller のタイトルをナビゲーション項目に設定します。したがって、次のように AVCollections のタイトルを設定できます。

newView.navigationItem.title = [self.tableView cellForRowAtIndexPath:indexPath].textLabel.text;

セル選択中。

于 2012-11-26T09:20:53.140 に答える
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;

セル自体のタイトル ラベルを詳細ビューのタイトルとして設定する場合。

お役に立てれば。

于 2012-11-26T09:45:56.587 に答える