scrollsToTop funktioniert nicht, wenn UIWebView mit Pushviewcontroller verwendet, für Lösung suchen

StackOverflow https://stackoverflow.com/questions/1808063

  •  05-07-2019
  •  | 
  •  

Frage

Ich habe eine App mit einer Tabellenansicht an der Wurzel in einer Navigationssteuerung und zur Auswahl einer Tabellenzelle zeigt es einen neuen View-Controller, die nur eine UIWebView enthält (mit einer Symbolleiste und einem navbar).

Je nachdem, wie stelle ich die neue Web-Ansicht, die Funktion, wo der Benutzer in der Statusleiste am oberen tippen können und die Webansicht blättern nach oben, entweder funktioniert oder nicht funktioniert.

Wenn ich:

  • (void) PresentModalViewController: (UIViewController *) modalViewController animierte: (BOOL) animierte

auf dem RootView, dann ist die Webansicht nach oben nicht scrollen.

Wenn ich ändern, dass eine Zeile Code und stattdessen verwenden:

  • (void) Pushviewcontroller: (UIViewController *) Viewcontroller animierte: (BOOL) animierte

auf dem Navigationscontroller, dann ist die scrollsToTop Funktion nicht mehr funktioniert.

Was ich wirklich jedoch verwenden mag, aus anderen Gründen im Zusammenhang mit der App ist die Pushviewcontroller-Methode. ABER, ich will auch das scrollsToTop Verhalten halten.

Ich habe bisher verschiedene Ansätze versucht, einige hier beschrieben:

-Attempting die Webansicht interne Scroll scrollsToTop Eigenschaft festlegen

((UIScrollView *)[[webView valueForKey:@"_internal"] valueForKey:@"scroller"]).scrollsToTop = YES;

(keine erkennbare Wirkung).

-Ändern die Reihenfolge der NavBar Eigenschaften festlegen oder nicht gar Einstellung Zu extra „Fenster makeKeyAndOrderFront“ ruft nach der neuen Ansicht schieben.

Ich glaube nicht, es gibt auch andere Ansichten gibt, dass die „scrollsToTop“ Eigenschaft könnte behaupten (und den ersten Test beweist oben, dass in jedem Fall).

Kurz des Versuchs UIWebView in eine UIScrollView einzubetten, die ich sein schmerzlich erwarten, ich habe aus Strecken laufen zu erkunden, dieses Problem zu lösen.

Ich bin der Hoffnung, jemand anderes hat einen Weg zu korrigieren?

gefunden
War es hilfreich?

Lösung 2

Es stellt sich heraus, dass es nicht wegen der Art und Weise arbeitet ich die Navbar wurde customiing. Ich war zwingende leftBarButtonItem mit einem UIBarButtonItem, die dann das ganze navbar aufnahm (ich glaube ich diesen Ansatz von einigen Apple-Code vor vielen Monaten nahm, aber nicht sicher). Ich war den gleichen Ansatz auf einer anderen Ansicht verwenden und die scrollsToTop funktionierte es.

Unter diesem Code aus und setzen Sie die benutzerdefinierte Navbar Ansicht in (zB) self.navigationController.titleView statt dieses Problem gelöst. Ich weiß nicht wirklich, warum, wie ich sage, dass es für andere Ansichten gut funktioniert.

verschwendete ich mit diesem Problem viel Zeit, so dass ich hoffe, dass ich jemand anderes speichern einige Haare, indem sie es hier zu beschreiben:)

Andere Tipps

Versuchen Sie, den umgekehrten Weg wie dieses Problem zu umgehen.

In den Root-View-Controller:

- (void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    self.tableView.scrollsToTop = NO;
}

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    self.tableView.scrollsToTop = YES;
}

Bye!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top