私のアプリケーションでは、私はUITableviewを使用しています。そのデリゲートメソッドでは、もし私が何らかの操作をしていればdidselectrowはちょうど起こることができません。再び2行を選択した場合、私は1行を選択した場合、例えばUITableview - tableView:didDeselectRowAtIndexPath:メソッドが正しく動作していませんか?
iはテーブルビュー
3行を有する(indexPath.row == 0)何も
が起こりません(indexPath.row == 1)今以前の値であるコンソールindexPath.row == 0にログインしています。
再度1行を選択すると、以前の値を記録します。indexPath.row = 1。
なぜこのようになりますか。
- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath
{
CustomerInfoViewController *customer = [[EquipmentViewController alloc]initWithNibName:@"CustomerInfoViewController" bundle:nil];
EquipmentViewController *equpment = [[EquipmentViewController alloc]initWithNibName:@"EquipmentViewController" bundle:nil];
ContactsViewController *contacts = [[ContactsViewController alloc]initWithNibName:@"ContactsViewController" bundle:nil];
if(indexPath.row == 0)
{
NSLog(@"one %d",indexPath.row);
[detailsView addSubview:customer.view];
}
if(indexPath.row == 1)
{
NSLog(@"two %d",indexPath.row);
[detailsView addSubview:equpment.view];
}
if(indexPath.row == 2)
{
NSLog(@"three%d",indexPath.row);
[detailsView addSubview:contacts.view];
}
}
私を助けてください。
ありがとうございます。
実際のコードを表示することがありますか? – Vladimir
論理的に正しいと思われます。おそらく初期化をif文にプルします。セクションとは何か関係がありますか?たぶん 'NSLog(@"%d%d "、indexPath.row、indexPath.section);'関数が呼び出されなかったり、コードが間違っているかどうかを調べることができます。問題をよりよく理解するには、いくつかのオプションをクリアする必要があります。 – DAS