Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在容器视图(故事板)内推送透明背景UIViewController时的灰色背景_Ios_Objective C_Storyboard - Fatal编程技术网

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

Ios 在容器视图(故事板)内推送透明背景UIViewController时的灰色背景,ios,objective-c,storyboard,Ios,Objective C,Storyboard,我正在推一个UIViewController(a),背景是UINavigationController(N) N放置在容器视图中。此视图具有我希望始终显示的背景 然后,当Push设置动画时,它会在我的VC(a)中显示灰色/透明背景,当它完成动画时,它会正确显示 有没有办法避免这种灰色 我已经“完成”了它,将白色视图背景放在一个窗口中,并使其消失在viewdide中,但我认为它可以在没有这个技巧的情况下完成 - (void)viewDidAppear:(BOOL)animated { [

我正在推一个
UIViewController
(a),背景是
UINavigationController
(N)

N放置在容器视图中。此视图具有我希望始终显示的背景

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

有没有办法避免这种灰色

我已经“完成”了它,将白色视图背景放在一个窗口中,并使其消失在
viewdide
中,但我认为它可以在没有这个技巧的情况下完成

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

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

// applicationDidFinishLaunching
self.window.backgroundColor = [UIColor whiteColor];
推送动画通常使用透明区域后面窗口的背景色,默认情况下窗口背景色是透明的,因此它通过透明导航栏和工具栏显示黑色

编辑:抱歉,误解了问题所在。推送具有透明背景颜色的视图控制器时,在视图控制器后面看到的背景是在视图控制器后面渲染的阴影(在非透明视图控制器中可以看到其边缘)


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

是的,但我需要它清晰,因为我需要始终显示我的背景图像,如果我将其设置为白色,它将覆盖它。(明显xD)@Bisca什么背景图像?如果应用程序的主窗口背景清晰,则渲染为黑色。或者你已经改变了窗户的颜色/在里面插入了一个图像?我试过了,但是没有用。灰色/透明视图显示在muy new ViewController中。。。就在容器上方。我的应用程序窗口是白色的,但我已经在其中放置了一个VC和一个带有导航器的容器。他们,在我的动画中,我想看我的第一个VC。@Bisca对不起,我误解了你的问题。我找到了一个解决方案,但它似乎比您已经使用的解决方案更痛苦。谢谢@你最终是如何解决这个问题的?我发现,即使是自定义动画,同样的问题仍然存在。最后,我创建了一个坚实的背景VC,并在ViewWillAspect中使其透明。这不是一个非常优雅的解决方案,但我没有找到更好的解决方案。我明白了。我所做的是对两个视图的ViewController进行了超类化,并为超类本身指定了一个背景图像,因此每个子视图都有相同的背景图像。因此,上述问题不会出现。这个很好用!这里唯一的问题是内存使用量增加。但在我的应用程序测试中,内存使用量增加了约10MB,iPhone/iPad应该可以轻松处理!