/ / UINavigation controller Push and Pop - iphone, kontroler, uinavigation

Sterownik UINavigation Push and Pop - iphone, kontroler, uinavigation

Muszę wyskoczyć do HomeScreenViewController z bieżącego kontrolera widoku po kliknięciu niestandardowego przycisku Wstecz, który jest dodawany w głównym oknie jako lightbox. Użyłem następującego kodu:

HomeScreenViewController *homeController = [[HomeScreenViewController alloc]
initWithNibName:@"HomeScreenViewController" bundle:nil];
[self.navigationController popToViewController:homeController animated:YES];
[homeController release];

Mam awarię z wyjątkiem: Tried to pop to a view controller that doesn"t exist.

Jak można to wdrożyć? Jakie zmiany są potrzebne do jego wdrożenia?

Odpowiedzi:

8 dla odpowiedzi № 1

Najwyraźniej tworzysz nową instancję HomeScreenViewController który nie istnieje na stosie nawigacyjnym. Będziesz musiał pobrać istniejącą instancję i użyć jej jako argumentu dla popToViewController:animated: metoda. Możesz to zrobić, pobierając kontroler widoku z pliku viewControllers tablica, która jest właściwością UINavigationController. Są indeksowane w kolejności, więc jeśli kontroler widoku ma indeks 1, pobierz kontroler widoku za pomocą

UIViewController * viewController = [self.navigationController.viewControllers objectAtIndex:1];
[self.navigationController popToViewController:viewController animated:YES];

Jeśli chcesz wrócić do głównego kontrolera widoku, użyj popToRootViewControllerAnimated: zamiast.


1 dla odpowiedzi nr 2

Spróbuj tego przyjaciela

[self.navigationController popToRootViewControllerAnimated:YES/NO];

0 dla odpowiedzi № 3

Nie zapomnij także o tym kodzie w swoim AppDelegate (.m):

navigationController = [[UINavigationController alloc] initWithRootViewController:self.viewController];

self.navigationController = navigationController;
self.window.rootViewController = self.navigationController;

[self.window makeKeyAndVisible];

i w AppDelegate (.h)

@property (strong, nonatomic) UINavigationController *navigationController;

Czasami może to być problem podczas dostosowywania wielu rzeczy w aplikacji.