2010-12-04 6 views
0

Ich schiebe einen UITableViewController auf einen UINavigationController mit pushViewController:animated:. Ich möchte in dem Moment benachrichtigt werden, in dem die Animation beendet ist, sodass ich selectRowAtIndexPath verwenden kann, um zu einer bestimmten Zeile zu blättern und sie hervorzuheben.
Wie kann ich den Delegaten einer Animation festlegen, die ich nicht explizit aufgerufen habe?Wie man benachrichtigt wird, wenn ein tableViewController die Übertragung auf einen Nav-Stack animiert

Antwort

1

Ich kenne keine Möglichkeit, den Delegaten der Push-Animation festzulegen. Hier ist ein einfacher Workaround:

Unterklasse UITableViewController. Überschreiben Sie viewDidAppear:, um Ihre "Post-Animation" -Methode nach einer kurzen Verzögerung aufzurufen.

- (void)viewDidAppear:(BOOL)animated { 
    [super viewDidAppear:animated]; 
    [self performSelector:@selector(scrollToAndHighlightCurrentRow) withObject:nil afterDelay:0.4]; 
}  
+0

Oh großartig. Also 'viewDidAppear' wird nur einmal aufgerufen, wenn die Push-Animation beendet ist? Perfekt, Das hat es getan. Vielen Dank. – Andrew

+1

Die 'viewDidAppear:' -Methode wird auch aufgerufen, wenn bei einer ausgeblendeten Ansicht die Obstruktionen entfernt wurden. Wenn Sie zum Beispiel eine andere Ansicht über Ihre Tabellenansicht schieben, wird beim Aufruf dieser Ansicht die 'viewDidAppear:' -Methode Ihres Tabellenansicht-Controllers erneut aufgerufen. –

+0

Bitte lesen Sie http://stackoverflow.com/questions/4356256/how-to-get-notified-when-scrolltorowatindexpath-finishes-animating für eine Folgefrage. – Andrew

1

Haben Sie versucht, einfach die Methode selectRowAtIndexPath: animated: scrollPosition: (über die Eigenschaft tableView) aufzurufen, bevor Sie sie auf den Stack des Navigationscontrollers schieben?

+0

Ja. Das ist, was ich weiß, aber dann endet die Scroll-Animation zur selben Zeit oder vor der Push-Animation. Ich möchte, dass der Benutzer weiß, dass er zu einer bestimmten Zeile gescrollt wird, indem er nur die Bildlauf- (und Hervorhebungs-) Animation startet, sobald die Bildanimation beendet ist. – Andrew

+0

Ich meine "was ich * jetzt * ..." – Andrew

Verwandte Themen