如何在UIViewController中设置视图

时间:2012-04-14 10:43:53

标签: objective-c uiview uiviewcontroller

我创建了一个几乎为空的UIViewController类,名为MyViewController。在 viewDidLoad 中,我正在设置标题并向 navigationItem.leftBarButtonItem 添加一个关闭按钮。

我正在展示我的MyViewController

MyViewController *myViewController = [[MyViewController alloc] init];

UINavigationController *nc = [[UINavigationController alloc] myViewController];
nc.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[self presentModalViewController:nc animated:YES];

当显示viewController时,它的视图背景只是黑色。如何设置它的视图以用空视图填充屏幕 - 就像在故事板中设置UIViewController一样?

我已尝试将以下内容添加到 viewDidLoad ,但视图仍为黑色:

self.view = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

3 个答案:

答案 0 :(得分:0)

您可以添加带有自定义图像的UIImageView,然后将其发送回去 所以在你的viewcontrollers viewDidLoad

UIImageView *back = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"MyBG"]];
[self.view addSubview:back];
[self.view sendSubViewToBack:back];

答案 1 :(得分:0)

如果您使用的是XIB文件,则应通过方法initWithNibName: bundle:

初始化视图控制器

答案 2 :(得分:0)

默认情况下,VC的视图在-loadView中创建,您通常既不会调用也不会覆盖。第一次请求VC的view属性时会自动调用它 视图的大小会自动设置为“空白区域”,就像没有导航控制器的状态栏以外的所有内容一样,在使用一个导航控制器时减去导航栏等等。你不应该担心它的大小 - 通常它很好。

您可以在-viewDidLoad中添加自己的观看次数,并在-viewDidUnload中再次删除它们(出于内存不足的原因)。