在容器视图(故事板)内推透明背景UIViewController的灰色背景

时间:2015-05-20 11:35:15

标签: ios objective-c storyboard

我在UIViewController N )中推送clearColor A UINavigationController作为背景。< / p>

N 放置在Container View中。此视图具有我想要始终显示的背景。

Container-UINavigation-Push

然后,当Push动画时,它在我的VC中显示灰色/透明背景( A ),当它完成动画时,它会正确显示。

有没有办法避免这种灰色?

我已经通过在 A 中添加白色视图背景并使其在viewDidAppear中消失而“完成”它,但我认为可以在没有这个技巧的情况下完成...

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
    __weak TestsViewController *weakSelf = self;
    [UIView animateWithDuration:.3 animations:^{
        TestsViewController *ownSelf = weakSelf;
        ownSelf.backgroundView.alpha = 0;
    }];
}

1 个答案:

答案 0 :(得分:3)

将应用程序窗口的背景颜色设置为白色:

// applicationDidFinishLaunching
self.window.backgroundColor = [UIColor whiteColor];

推送动画通常最终使用透明区域后面窗口的背景颜色,默认情况下窗口背景颜色是清晰的,因此它通过透明导航栏和工具栏显示黑色。

编辑:很抱歉,误解了问题所在。当您使用透明背景颜色推动视图控制器时,您在视图控制器后面看到的背景是在视图控制器后面呈现的阴影(您可以在非透明视图控制器中看到它的边缘)。

This question可以解答您的问题。基本上,您必须实现自定义动画控制器,以自己提供过渡动画(如here所述)。继续使用你的技巧可能比实现自己的自定义导航过渡更容易。