скрыть второй viewcontroller и перейти к третьему viewcontroller - PullRequest
2 голосов
/ 29 ноября 2011

Я нахожусь в ViewControllerA, а другие ViewControllerB также загружаются в stack.viewControllerB видоуправления, также имеет экран камеры.С ViewControllerA я звоню ViewControllerB по следующему коду:

AppNameAppDelegate *appDelegate = (AppNameAppDelegate *)[[UIApplication sharedApplication] delegate];
ViewControllerB *l_ViewControllerB = [appDelegate ViewControllerB];
l_ViewControllerB.view.hidden = NO;
[self.navigationController pushViewController:l_ViewControllerB animated:YES];

Теперь с ViewControllerB я хочу переключиться на ViewControllerC.

self.view.hidden = YES;
ViewControllerC *l_ViewControllerC = [[ViewControllerC alloc] init];
[self.navigationController pushViewController:l_ViewControllerC animated:YES];
[l_ViewControllerC release];

Ноэто навигация к ViewControllerA, которая мне не нужна, поэтому мне нужна помощь, как перейти к ViewControllerC без отображения ViewControllerA.

Обновление: ViewControllerB определен в файле ViewControllerB.mm, естьнекоторое кодирование C ++ также включено в файл ViewControllerB.mm.Это будет иметь какое-либо значение, если ViewControllerB определен в файле ViewControllerB.m или ViewControllerB.mm?

Ответы [ 3 ]

1 голос
/ 01 декабря 2011

Может быть, при переходе к ViewControllerB i_nigma sdk создает новую тему.Вот почему, если вы попытаетесь перейти от ViewControllerB к любому другому представлению, вы не сможете перейти, кроме ViewControllerA, который уже виден.Вы можете попытаться выполнить действие в основном потоке пользовательского интерфейса, чтобы любые изменения пользовательского интерфейса были отражены в вашем приложении пользовательского интерфейса.Вы можете попробовать performSelectorOnMainThread, как показано ниже.

[self performSelectorOnMainThread:@selector(operationComplete) withObject:nil waitUntilDone:false];

Вы можете сослаться это и это1 .

1 голос
/ 29 ноября 2011

Вы должны удалить эти две строки, если только по какой-то причине вы не упомянули:

// in ViewControllerA:
l_ViewControllerB.view.hidden = NO;

// in ViewControllerB:
self.view.hidden = YES;
0 голосов
/ 29 ноября 2011

Пожалуйста, попробуйте , это может быть полезно для вас.

...