2012-04-15 2 views
1

У меня есть функция, которую я ранее написал, чтобы представить popover из элемента кнопки панели, теперь я пытаюсь повторно использовать его, чтобы показать popover из аксессуара ячейки, когда таблица находится в режим редактирования.iOS получить представление UITableViewCellAccessoryDetail

Я попытался

[self showPopover:[[theTableView cellForRowAtIndexPath:indexPath] editingAccessoryView]] 

но это NULL.

Первоначально он установлен с [cell setEditingAccessoryType: UITableViewCellAccessoryDetailDisclosureButton];, если это имеет значение.

И функция поповер является

-(void) showPopover:(id)sender { 
    ... 
    [self.popOver presentPopoverFromBarButtonItem:sender 
          permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; 
} 

Любые идеи, пожалуйста.

ответ

0

Как о попытке отобразить с:

- (void)presentPopoverFromRect:(CGRect)rect inView:(UIView *)view permittedArrowDirections:(UIPopoverArrowDirection)arrowDirections animated:(BOOL)animated 

Просто передайте это ваш cell.accessoryView.frame как "Rect" аргумент.

+0

Я хотел бы сохранить функцию точно так, как она есть, она используется довольно много, и я не хочу проходить и редактировать каждое ее появление, и я думаю, это то, как вы предлагаете это делать. В худшем случае я могу написать новый, используя presentpopoverfromrect, просто пытаясь повторно использовать столько, сколько смогу. – Josh

+1

Реплицированный код возвращается, чтобы укусить вас в конце :) – Stavash

+0

Я имею в виду, что я много использовал функцию, это только одна ее версия. Но разве мне не нужно редактировать везде, где он призван передавать разные аргументы? Возможно, я был неясно, это '[[theTableView cellForRowAtIndexPath: indexPath] editingAccessoryView], который является NULL – Josh

Смежные вопросы