0

クリックされた各セルに整数を割り当てたいテーブルがあります。

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



UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];

Information *detailViewController = [storyboard instantiateViewControllerWithIdentifier:@"Information1"];

これは、セル テキストが「player1」と等しいかどうかを確認し、それに整数を割り当て、タイトルを次のビュー コントローラーに渡します。

if([[playersearch objectAtIndex:indexPath.row]isEqual:@"John"]){

    detailViewController.infoInt=0;

    [detailViewController setTitle:[playersearch objectAtIndex:indexPath.row]];

}



if([[playersearch objectAtIndex:indexPath.row]isEqual:@"Mark"]){

    detailViewController.infoInt=1;

    [detailViewController setTitle:[playersearch objectAtIndex:indexPath.row]];



}



if([[playersearch objectAtIndex:indexPath.row]isEqual:@"Fred"]){

    detailViewController.infoInt=2;

    [detailViewController setTitle:[playersearch objectAtIndex:indexPath.row]];



}


if([[playersearch objectAtIndex:indexPath.row]isEqual:@"Matt"]){

    detailViewController.infoInt=3;

    [detailViewController setTitle:[playersearch objectAtIndex:indexPath.row]];



}

if([[filteredSearch objectAtIndex:indexPath.row]isEqual:@"Javier"]){

    detailViewController.infoInt=3;

    [detailViewController setTitle:@"player 4"];



}

if([[playersearch objectAtIndex:indexPath.row]isEqual:@"Andreas"]){

    detailViewController.infoInt=4;

    [detailViewController setTitle:[playersearch objectAtIndex:indexPath.row]];



}

if([[playersearch objectAtIndex:indexPath.row]isEqual:@"Lionel"]){

    detailViewController.infoInt=5;

    [detailViewController setTitle:[playersearch objectAtIndex:indexPath.row]];



}





[self.navigationController pushViewController:detailViewController animated:YES];

私のアプリでは、これを約 200 回行う必要があり、コードを簡素化する方法があるかどうか疑問に思っていました。ところで、すべてのプレイヤーの名前を保持するプロパティ リストがあります。

4

2 に答える 2

0

割り当てられた整数がセルインデックスと等しい場合。なぜあなたはこれをしないのですか:

[detailViewController setInfoInt:indexPath.row];
[detailViewController setTitle:[playersearch objectAtIndex:indexPath.row]];
[self.navigationController pushViewController:detailViewController animated:YES];
于 2013-01-06T15:37:22.460 に答える
0

次のように、配列から辞書の配列を作成する方がはるかに効率的です。

({@"player":@"John", @"num":@0},{@"player":@"Mark", @"num":@1},{@"player":@"Fred", @"num":@3}, etc}

次に、2 行だけが必要で、if ステートメントは必要ありません。

   detailViewController.infoInt= playersearch[indexPath.row][@"num"];
   [detailViewController setTitle:playersearch[indexPath.row][@"player"]];
于 2013-01-06T05:09:55.010 に答える