UINavigationController清除背景颜色

dev*_*laz 7 uiviewcontroller uinavigationcontroller ios

这个简单的例子,但不起作用;

我有ViewController里面的NavigationConroller,然后我想添加新的ViewConroller及其自导航控制器.

在主viewController中:

CustomViewController *vc = [[CustomViewController alloc] init];
NewNavigationVC *nav = [[NewNavigationVC alloc] initWithRootViewController:vc];

[self presentViewController:nav animated:NO completion:nil];
Run Code Online (Sandbox Code Playgroud)

两个控制器的背景颜色清晰,但仍然是黑色.导航栏我可以清楚,但不是视图.

更新:

如果我将self.window.backroundColor更改为红色,例如,该工作但不清楚

更新2:

[self addChildViewController:vc];  
[self.view addSubview:vc.view];
[vc didMoveToParentViewController:self];
Run Code Online (Sandbox Code Playgroud)

当我想dealloc vc

[vc willMoveToParentViewController:nil];
[vc.view removeFromSuperview];
[vc removeFromParentViewController];
Run Code Online (Sandbox Code Playgroud)

所有工作都没有导航控制器

Vad*_*off 2

viewController 的视图的背景颜色不能清晰(如在堆栈上显示前一个 viewController 的视图)。推送或呈现一个 viewController 会将新的 viewController 放入堆栈并完全隐藏以前的 viewController。

如果您希望视图上有清晰的背景颜色,您将需要:

1) 将 viewController 设置为前一个 viewController 的 childViewController - 然后自己设置过渡动画。

或者

2)将viewController逻辑移植到以前的viewController中,并让一个新的uiview充当该视图(您还需要自己对过渡进行动画处理)。