为什么我看到黑屏?我没有分配东西吗?

时间:2012-01-07 17:47:55

标签: objective-c ios xcode interface-builder

在xcode中,这是我创建的一个视图:

enter image description here

如果我在模拟器中运行程序,我可以看到这个视图很好。但是,如果我创建一个UIViewController类并将其与此视图挂钩(我确认此视图是一个UIViewController),这就是我在模拟器中得到的:

enter image description here

为什么我会看到这个空白屏幕?如何才能获得看起来像第一张图像的屏幕?

编辑:代码

#import "EnterLevelViewController.h"

@interface EnterLevelViewController ()

@end

@implementation EnterLevelViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)loadView
{
    // Implement loadView to create a view hierarchy programmatically, without using a nib.
}

- (void)viewDidLoad
{
    [super viewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.
}

- (void)viewDidUnload
{
    [super viewDidUnload];
    // Release any retained subviews of the main view.
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

@end

3 个答案:

答案 0 :(得分:5)

从您的代码中可以看出,您已从视图控制器中取消注释-(void)loadView方法,该方法在模板中提供。执行此操作时,控制器将尝试以编程方式构建视图,而不是使用nib(storyboard)。完全删除空方法,看看是否有帮助。

答案 1 :(得分:1)

只需从tabBarController拖到故事板中的新ViewController,当你松开时,按下关系ViewController的选择。

以下是如何使用三个标签进行设置的快速示例,其中一个标签位于您的视图中:

https://github.com/HubertK/TabBar_Example

答案 2 :(得分:0)

作为项目一部分的故事板已经包含了一个视图控制器及其相关视图。您可以在发布的故事板图像中看到它 - 它是底部带有浅灰色背景的图标。该视图控制器被设置为根视图控制器,作为项目模板的一部分的代码加载了该视图控制器及其视图。这就是你在模拟器中看到的。添加另一个视图控制器时,必须将其配置为根控制器。由于它没有连接到它的视图(或者如果它连接,视图为空),你不再看到任何东西。