Я разрабатываю приложение, в котором пользователь может вводить продукты и информацию об этих продуктах. Вся информация о продуктах вводится в пользовательский UITableViewCell. Я также хочу, чтобы пользователь добавил изображение продуктов. Для этого мне нужно показать всплывающее представление, содержащее UIImagePickerController. когда я это делаю, Xcode подарил мне эту ошибку:Как показать popover вид с кнопки в пользовательских tableviewcell?
Попутчики не могут быть представлены с видом, у которого нет окна.
Когда пользователь нажимает на кнопку, чтобы добавить (так называемый 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;
}
(» model "- это пользовательский класс. Каждый экземпляр этого класса представляет собой один продукт. Каждый пользователь добавляет строку в таблицу, один экземпляр этого класса добавляется в массив.)
Я искал SO и google весь день, и я не нашел решения о том, как это работает с пользовательской ячейкой, только на том, как она работает в файле didSelectRowAtIndexPath и когда нажата кнопка раскрытия.
так что мой вопрос близок: как правильно показать всплывающее представление, когда нажата кнопка внутри пользовательской ячейки?
Заранее благодарю вас за любую помощь.
<#row>? <#section>? что эти два точно? Я никогда их не видел (я новичок). Я боюсь, что это не сработает, это дает мне ошибку «ожидаемого выражения» для этой строки кода/ – Joris416
. Вам нужно заполнить значения для строки и раздела, соответствующие ячейке, из которой вы хотите показать трещать. Я буду редактировать для ясности. –
ах, который уточняет. можете ли вы объяснить мне, как передать индексный путь в качестве параметра для этого метода? – Joris416