2

在我的项目中,导航控制器中嵌入了两个视图控制器(第一个和第二个),并且半透明设置为 NO。但我在 First ViewController 中使用了提示符。

我使用了自动布局。如果您知道使用和不使用 AutoLayout 的解决方案,我会非常高兴

在此处输入图像描述

在此处输入图像描述

当我推到第二个视图控制器时。我在导航栏下出现了一些黑屏

在此处输入图像描述

我尝试了很多概念,但有任何帮助。

帮助我如何解决。

笔记:

不要说 set Translucent 是 YES。我知道如果我设置是,它会完美运行。但我需要用 Translucent 实现是 NO

更新 1:图像已更新。

4

3 回答 3

4

我已关闭 Autolayout - 并找到以下解决方案

视图控制器优先

-(void)viewWillDisappear:(BOOL)animated
{
     self.view.backgroundColor = [UIColor whiteColor];

}

视图控制器二

 -(void)viewWillLayoutSubviews
 {
    AppDelegate *appDelegate = [[UIApplication sharedApplication]delegate];
    appDelegate.window.backgroundColor = [UIColor whiteColor];
    self.myView.frame = CGRectMake(0.0, 64.0, 320.0, 504.0);

 }

我希望这会有所帮助,对于 Autolayout 它也可以正常工作

于 2014-02-11T09:26:19.317 回答
0

我用了这段代码。但我不会有任何硬编码解决方案。如果您知道任何其他解决方案,请分享

[UIView animateWithDuration:0.3 animations:^{
        self.view.frame=CGRectMake(0, self.navigationController.navigationBar.frame.size.height+20, 320, 504);
}];
于 2014-02-12T06:39:20.713 回答
-1

尝试设置您的导航视图backgroundColor

于 2014-02-11T07:27:04.963 回答