Jestem aplikacją typu Dashboard i w pewnym momencieChciałbym wrócić do kontrolera widoku "Pulpit nawigacyjny". Nie mogę zmienić kontrolera widoku głównego. Sposób, w jaki wykonałem to zadanie, jest statyczną instancją. Używam tego kodu:
static DashboardViewController *instance;
+ (instancetype) instance {
return instance;
}
To wystąpienie jest ustawione w viewDidLoad na siebie.
Więc kiedy chcę pop do tego kontrolera używam:
[self.navigationController popToViewController:[DashboardViewController instance] animated:YES];
Co lubię wiedzieć, czy to jest droga, czy powinna być inna?
Odpowiedzi:
4 dla odpowiedzi № 1Spróbuj tego,
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 dla odpowiedzi № 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;
}
}