UIViewController的默认背景是黑色的吗?

时间:2015-08-20 09:39:00

标签: ios uiviewcontroller

我创建了这个简单的演示。主要故事板是这样的:

enter image description here

该视图控制器中的代码如下:

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (IBAction)buttonClicked:(id)sender {
    SecondViewController* secondVC = [SecondViewController new];
    [self.navigationController pushViewController:secondVC animated:YES];
}

@end

在appdelegate.m中有:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    return YES;
}

在SecondViewController.m中,只有默认代码。

问题是,SecondViewController看起来是黑色的,并且在推动动画期间有明显的滞后。但是,当我将SecondViewController的backgroundColor设置为任何颜色(例如红色)时,没有延迟,一切看起来都很正常。我在iOS 8上测试了这个,在模拟器和iPhone设备上都是这样。

我以前从未见过这个。 UIViewController的默认背景是透明还是黑色?或者我在这里缺少什么?提前谢谢!

2 个答案:

答案 0 :(得分:0)

SecondViewController没有笔尖。首先将视图控制器添加到故事板并转到xcode中的实用程序(右侧面板) - >身份检查员(第三个图标),这里将其类名设置为SecondViewController和故事板ID" SecondViewController",然后将按钮点击事件更改为:

- (IBAction)buttonClicked:(id)sender
{
    SecondViewController * secondVC = [self.storyboard instantiateViewControllerWithIdentifier:@"SecondViewController"];
    [self.navigationController pushViewController:secondVC animated:YES];
}

答案 1 :(得分:0)

如果您的控制器在故事板中,可能会出现问题:

SecondViewController* secondVC = [SecondViewController new];

您正在执行alloc init,除非您覆盖SecondViewController方法,否则不会完全初始化init。如果您的SecondViewController在故事板中使用instantiateViewControllerWithIdentifier

SecondViewController* secondVC = [self.storyboard instantiateViewControllerWithIdentifier: @"SecondViewController"];
[self.navigationController pushViewController:secondVC animated:YES];