Mam problem z moim widokiem tabeli. Odrzucając kontroler widoku modalnego przedstawiony na górze, zawsze przewija do góry. Próbowałem obserwować zmiany do contentOffset
używając KVO, ale ten, który zakłóca mój widok, idzie za tym.dismissModalViewControllerAnimated resetuje contentOffset
Z UITableViewController
, gdy użytkownik zakończy swoje zadanie w oknie modalnym, self.tableView.contentOffset
jest wzywam:
[self dismissModalViewControllerAnimated:YES]
Następnie, gdy viewWillAppear:(BOOL)animated
się nazywa, self.tableView.contentOffset
jest już ustawiony na 0,0.
Czy to ma się stać? Jestem w stanie obejść problem, pamiętając o pozycji przewijania przed przedstawieniem widoku modalnego i przywrócić go z powrotem w viewWillAppear po odrzuceniu widoku modalnego. Ale wydaje się nie tak. Czy czegoś brakuje?
Znalazłem podobny problem opisany w Dismiss modal view changes underlying UIScrollView.
czy można sprawdzić, czy 'viewDidLoad:' zostanie wywołany po odrzuceniu widoku modalnego? (Zauważyłem, że może się to zdarzyć podczas ostrzeżenia o pamięci, niektóre komponenty są rozładowywane, nawet jeśli widok jest pchany). –
babbidi ma dobry punkt, twój widok może zostać rozładowany, podczas gdy widok modalny jest na górze, w przypadku ostrzeżenia o pamięci. Jeśli zainicjujesz widok tabeli w metodzie viewDidLoad, a podczas widoku modalnego pojawi się ostrzeżenie o pamięci, widok tabeli może zostać ponownie zainicjowany po odrzuceniu widoku modalnego. Umieść NSLogs w viewDidUnload i viewDidLoad. – MattyG
Już monitorowałem 'viewDidUnload' - i nie, widok nie jest rozładowywany. – Palimondo