-1

viewController を使用して tableView を持つアプリを作成しました。項目を選択した後、2 番目の viewController に移動し、渡されたデータで開きます。RootTableView で次のことを実装しています。

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

    NSString *selecteditem = [listOfItems objectAtIndex:indexPath.row];

DetailViewController *dvController = [[DetailViewController alloc] initWithNibName:@"DetailView" bundle:[NSBundle mainBundle]];
dvController.selectedItem = selectedItem;
[self.navigationController pushViewController:dvController animated:YES];
[dvController release];
dvController = nil;

}

このコードは基本的に機能するはずですが、アイテムを選択した後(青色)、選択した青色のままで、何も起こりませんでした...別の行を選択した後、同じことが起こりました。私の何が問題なのですか?コード?

4

3 に答える 3

0

ナビゲーションコントローラを確認する必要があると思います。初期化されていない可能性があります。コントローラーを内部にプッシュするには、 UINavigationController が必要です。

于 2012-08-18T06:50:15.647 に答える
0

テーブルにセルを追加するときに、選択スタイルを無効にするだけです。

cell.selectionStyle = UITableViewCellSelectionStyleNone;
于 2012-08-18T06:36:42.330 に答える
0

次のコードをコードに入れるだけです

  [self.tableView deselectRowAtIndexPath:
      [self.tableView indexPathForSelectedRow] animated:YES];

つまりのように

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

    NSString *selecteditem = [listOfItems objectAtIndex:indexPath.row];
// implement my code
[tableView deselectRowAtIndexPath:[tableView indexPathForSelectedRow] animated:YES];

DetailViewController *dvController = [[DetailViewController alloc] initWithNibName:@"DetailView" bundle:[NSBundle mainBundle]];
dvController.selectedItem = selectedItem;
[self.navigationController pushViewController:dvController animated:YES];
[dvController release];
dvController = nil;

}
于 2012-08-18T06:37:42.203 に答える