/ / Контролер спливаючого виду на звичайний контролер перегляду - ios, aim-c, uinavigationcontroller

Оптичний контроллер перегляду для спільного перегляду контролера - ios, об'єктив-c, uinavigationcontroller

У мене є така програма, як приладова панель, і в якийсь момент яхотів би повернутися до контролера перегляду "Інформаційна панель". Я не можу змінити контролер кореневого перегляду. Я виконав це завдання - статичним випадком. Я використовую цей код:

static DashboardViewController *instance;
+ (instancetype) instance {
return instance;
}

Цей примірник встановлений у viewDidLoad до самоврядування.

Тоді, коли я хочу перейти на цей контролер, я використовую:

  [self.navigationController popToViewController:[DashboardViewController instance] animated:YES];

Що мені подобається знати, чи це шлях, чи це має бути інше?

Відповіді:

4 для відповіді № 1

Спробуйте це,

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 для відповіді № 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;
}
}