次のように動作します: 配列から表示されたアイテムを含むテーブル ビューがあります。各テーブル ビュー セルのボタンはブール値を返します。
検索バーでセルを検索すると、セルのインデックスが元のテーブルの値から変更されindexPath.row
、ボタンがクリックされたときに間違った値が使用さindexPath
れます。
私のボタンからの関連コード:
(void)clickedButton:(UIButton*)sender {
NSLog(@"Row: %d", sender.tag);
NSIndexPath* indexPath = [NSIndexPath indexPathForRow:sender.tag inSection:0];
Stories *story = (Stories *)[self.fetchedResultsController objectAtIndexPath:indexPath];
BOOL isSaved = [story.isBookmarked boolValue];
story.isBookmarked = [NSNumber numberWithBool:!isSaved];
私の関連コードcellForRowAtIndexPath
if (tableView == self.searchDisplayController.searchResultsTableView){
[cell.button setSelected:[story.isBookmarked boolValue]];
cell.button.tag = indexPath.row;
}
else
{
[cell.button setSelected:[story.isBookmarked boolValue]];
cell.button.tag = indexPath.row;
}