ユーザーが製品とその製品に関する情報を入力できるアプリを開発しています。製品に関するすべての情報は、カスタム UITableViewCell に入力されます。また、ユーザーが製品の画像を追加できるようにしたいと考えています。そのためには、UIImagePickerController を含むポップオーバー ビューを表示する必要があります。私がそれをすると、Xcodeは私にこのエラーを与えます:
ウィンドウのないビューからはポップオーバーを表示できません。
ユーザーがボタンをタップして (と呼ばれるaddImage
) 画像を追加すると、カスタム セルが TableView 内でこのアクションをトリガーします。
- (void) addImage
{
CustomCell *customcell = [[CustomCell alloc] init];
itemImagePicker = [[UIImagePickerController alloc] init];
itemImagePicker.delegate = self;
itemImagePicker.sourceType= UIImagePickerControllerSourceTypePhotoLibrary;
itemImagePopover = [[UIPopoverController alloc] initWithContentViewController:itemImagePicker];
[itemImagePopover presentPopoverFromRect:customCell.addImage.bounds inView:self.tableView permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}
私の cellForRowAtIndexPath は次のようになります。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CustomCellIdentifier = @"CustomCellIdentifier ";
CustomCell *cell = (CustomCell *)[tableView dequeueReusableCellWithIdentifier: CustomCellIdentifier];
if (cell == nil) {
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CustomCell"
owner:self options:nil];
for (id oneObject in nib) if ([oneObject isKindOfClass:[CustomCell class]])
cell = (CustomCell *)oneObject;
cell.selectionStyle = UITableViewCellSelectionStyleNone;
}
NSUInteger *row = [indexPath row];
Model *model = self.products[indexPath.row];
cell.itemName.text = model.itemName;
cell.itemDescription.text = model.itemDescription;
cell.itemPrice.text = model.itemPrice;
cell.itemPrice.delegate = self;
cell.itemName.delegate = self;
cell.itemDescription.delegate = self;
NSLog(@"%@", cell.itemPrice);
return cell;
}
(「モデル」はカスタム クラスです。そのクラスの各インスタンスは 1 つの製品を表します。ユーザーがテーブルビューに行を追加するたびに、このクラスの 1 つのインスタンスが配列に追加されます。)
私は一日中SOとグーグルを検索してきましたが、これがカスタムセルでどのように機能するかについての解決策は見つかりませんでした.didSelectRowAtIndexPathでの機能と開示ボタンがタッチされたときのみ.
だから私のプットは簡単です:カスタムセル内のボタンがタップされたときにポップオーバービューを適切に表示するにはどうすればよいですか?
事前に感謝します。どんな助けでも大歓迎です。