我在ViewControllerA
,其他ViewControllerB
也加载在viewcontroller的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文件中定义有什么不同吗?
答案 0 :(得分:1)
你应该删除这两行,除非有一些你没有提到的原因:
// in ViewControllerA:
l_ViewControllerB.view.hidden = NO;
// in ViewControllerB:
self.view.hidden = YES;
答案 1 :(得分:1)
也许在导航到ViewControllerB
时,i_nigma sdk正在创建一个新线程。这就是为什么如果您尝试从ViewControllerB
导航到任何其他无法导航的视图,除了已经可见的ViewControllerA。
您可以尝试在UI主线程上执行操作,以便任何UI更改都反映在UI应用程序中。您可以尝试performSelectorOnMainThread
,如下所示。
[self performSelectorOnMainThread:@selector(operationComplete) withObject:nil waitUntilDone:false];
答案 2 :(得分:0)
请尝试this可能对您有所帮助。