Pracuję nad projektem w celu-c dla ios, i mam widok z wieloma zakładkami za pomocą podklasy UITabBarController. Każda karta ma swój własny kontroler UINavigationController. Gdy widok ładuje się na karcie, uruchamiane są odpowiednie zdarzenia aktywacyjne (viewWillAppear, viewDidLoad itp.). Jednak po dotknięciu innej karty i kliknięciu wstecz, nie wszystkie te zdarzenia zostaną ponownie uruchomione, ponieważ widok jest już widocznym widokiem dla tej konkretnej karty (np. ViewDidLoad).NSNotification lub Delegate, aby zarejestrować się, gdy widoczny widok zmienia się
Moje pytanie brzmi: czy istnieje powiadomienie lub delegat, na który mogę się po prostu zarejestrować i otrzymać powiadomienie, gdy widoczny widok w oknie zmieni się? Zrobiłem trochę badań i nie znalazłem nic konkretnego. Co mam zamiar zrobić to:
- Sprawdź widoczny widok gdy zakładka zmiany indeksów bar: TabBarController: didSelectViewController
- rejestracji dla tego zdarzenia na każdym kontrolerze nawigacji: navigationController: didShowViewController: animowane:
W ten sposób powinienem być powiadamiany za każdym razem, gdy zmienia się widzialViewController przez zmianę karty lub nawigację w obrębie przepływu nawigacji tabulatora (z wyjątkiem modałów, w tym przypadku nie obchodzą mnie one, są już obsługiwane).
Czy to właściwe podejście?
Dzięki. Niedługo to zrobię - mam kilka innych wad, żeby wyjść. :) –