我在 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文件中定义的,在viewControllerb.mm文件中也涉及一些C ++编码。这将使ViewControllerb在viewControllerb.m或viewControllerb.mm文件中定义任何区别?

有帮助吗?

解决方案

请试试 这个 可能对您有帮助。

其他提示

您应该删除这两行,除非您没有提到某些原因:

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

// in ViewControllerB:
self.view.hidden = YES;

也许在导航到 ViewControllerB I_NIGMA SDK正在创建一个新线程。这就是为什么如果您尝试从 ViewControllerB 对于任何其他视图,您都无法导航,除了已经可见的视图Controllera。您可以尝试在UI主线程上执行操作,以便在UI应用程序中反映任何UI更改。你可以试试 performSelectorOnMainThread 如下。

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

您可以参考 这个this1 .

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top