2012-04-15 3 views
1

Ich habe eine Funktion, die ich zuvor geschrieben hatte, um ein Popover von einem Balkenschaltelement zu präsentieren, jetzt versuche ich, es wieder zu verwenden, um das Popover von einem Zellenzubehör anzuzeigen, wenn der Tisch ist Bearbeitungsmodus.iOS bekomme die Ansicht eines UITableViewCellAccessoryDetails

Ich habe

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

aber dies ist NULL.

Ursprünglich ist es mit [cell setEditingAccessoryType: UITableViewCellAccessoryDetailDisclosureButton]; eingestellt, wenn das einen Unterschied macht.

Und die popover Funktion ist

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

Irgendwelche Ideen bitte.

Antwort

0

Wie wäre es versucht, mit angezeigt werden:

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

Sie es einfach Ihre cell.accessoryView.frame als "rect" Argument übergeben.

+0

Ich möchte die Funktion genau so beibehalten, wie sie ist, sie wird ziemlich oft verwendet und ich möchte nicht jedes Vorkommen davon bearbeiten und bearbeiten, was meiner Meinung nach ist, wie Sie es vorschlagen. Im schlimmsten Fall kann ich mit presentpopoverfromrect ein neues schreiben und versuche so viel wie möglich wiederzuverwenden. – Josh

+1

Replizierter Code kommt zurück, um Sie am Ende zu beißen :) – Stavash

+0

Ich meine, ich habe die Funktion sehr oft verwendet, es gibt nur eine Version davon. Aber müsste ich nicht überall editieren, um andere Argumente zu übergeben? Vielleicht war ich nicht klar, es ist '[[theTableView cellForRowAtIndexPath: indexPath] editingAccessoryView]' das ist NULL – Josh

Verwandte Themen