Трябва да изскоча към HomeScreenViewController от текущия контролер на изглед, след като кликнете върху персонализиран бутон за връщане, който се добавя в главния прозорец като светлинна кутия. Използвах следния код:
HomeScreenViewController *homeController = [[HomeScreenViewController alloc]
initWithNibName:@"HomeScreenViewController" bundle:nil];
[self.navigationController popToViewController:homeController animated:YES];
[homeController release];
Получих катастрофа с изключение: Tried to pop to a view controller that doesn"t exist.
Как може да се приложи? Какви промени са необходими за прилагането му?
Отговори:
8 за отговор № 1Ясно създавате нов екземпляр от HomeScreenViewController
което не съществува в навигационния стек. Ще трябва да вземете съществуващия екземпляр и да го използвате като аргумент за popToViewController:animated:
метод. Можете да го направите, като вземете контролера за изглед от viewControllers
масив, който е собственост на UINavigationController
, Те се индексират по ред, така че ако контролерът на изглед е в индекс 1, тогава използвайте контролера за изглед
UIViewController * viewController = [self.navigationController.viewControllers objectAtIndex:1];
[self.navigationController popToViewController:viewController animated:YES];
Ако искате да се върнете към контролера на root view, използвайте popToRootViewControllerAnimated:
вместо.
1 за отговор № 2
Опитайте този приятел
[self.navigationController popToRootViewControllerAnimated:YES/NO];
0 за отговор № 3
Също така не забравяйте за този код във вашия AppDelegate (.m):
navigationController = [[UINavigationController alloc] initWithRootViewController:self.viewController];
self.navigationController = navigationController;
self.window.rootViewController = self.navigationController;
[self.window makeKeyAndVisible];
и в AppDelegate (.h)
@property (strong, nonatomic) UINavigationController *navigationController;
Понякога може да е проблем, когато персонализирате много неща в приложението си.