Ho una app come Dashboard e ad un certo puntovorrebbe tornare al controller di visualizzazione "Dashboard". Non riesco a cambiare il controller della vista radice. Il modo in cui ho realizzato questo compito è da un'istanza statica. Io uso questo codice:
static DashboardViewController *instance;
+ (instancetype) instance {
return instance;
}
Questa istanza è impostata su viewDidLoad su self.
Quindi quando voglio fare il pop su questo controller uso:
[self.navigationController popToViewController:[DashboardViewController instance] animated:YES];
Cosa mi piacerebbe sapere se questa è la strada da percorrere o dovrebbe essere diverso?
risposte:
4 per risposta № 1Prova questo,
for (UIViewController *viewController in [self.navigationController viewControllers]) {
//you can also use NSClassFromString(@"DashboardViewController") instead of [DashboardViewController class]
if ([viewController isKindOfClass:[DashboardViewController class]]) {
[self.navigationController popToViewController:viewController animated:YES];
}
}
3 per risposta № 2
for (UIViewController *controller in self.navigationController.viewControllers)
{
if ([controller isKindOfClass:[DashboardViewController class]])
{
//Do not forget to import DashboardViewController.h
[self.navigationController popToViewController:controller animated:YES];
break;
}
}