私はフォトギャラリーのように動作するアプリに取り組んでおり、ユーザーにギャラリーから写真を削除させるオプションを実装しています。これを実現するために、各画像の上に非表示のボタンを配置することにしました。ユーザーが「編集」ボタンを押すと、各画像の非表示の削除ボタンがアクティブになります。わかりやすくするために、非表示の各ボタンに同じIBOutletを使用しており、InterfaceBuilderで各ボタンに適切なタグを付けています。ユーザーが画像の上にあるボタンをタップすると、本当に画像を削除するかどうかを尋ねるアラートビューが表示されます。[はい]をクリックした場合は、removeObjectAtIndexを呼び出します。これが私が使用しているコードです:
- (IBAction)deleteButtonPressed:(id)sender {
NSLog(@"Sender is %@", sender);
UIAlertView *deleteAlertView = [[UIAlertView alloc] initWithTitle:@"Delete"
message:@"Are you sure you want to delete this photo?"
delegate:self
cancelButtonTitle:@"No"
otherButtonTitles:@"Yes", nil];
[deleteAlertView show];
int imageIndex = ((UIButton *)sender).tag;
deleteAlertView.tag = imageIndex;
}
- (void)alertView: (UIAlertView *) alertView
clickedButtonAtIndex: (NSInteger) buttonIndex
{
if (buttonIndex != [alertView cancelButtonIndex]) {
NSLog(@"User Clicked Yes. Deleting index %d of %d", alertView.tag, [array count]);
[self.array removeObjectAtIndex: alertView.tag];
NSLog(@"After deleting item, array count = %d", [array count]);
alertView.tag.image = nil;
}
[self.user setObject:self.array forKey:@"images"];
}
ここでの問題はですalertView.tag.image
。「メンバー参照ベースタイプNSInteger(別名int)は構造体または共用体ではありません。このコードは配列から画像を正常に削除しますが、UIからも画像を削除する必要があります。」というエラーが表示されます。これをalertView.tag.image
行う方法がわからないので、Objective-Cはまだ初めてで、読んだ本ではこれについてまったく説明していません。また、後でUIを更新するにはどうすればよいか疑問に思いました。画像を削除しますか?