【问题标题】:How to setup view in UIViewController如何在 UIViewController 中设置视图
【发布时间】:2012-04-26 12:49:15
【问题描述】:

我创建了一个几乎为空的 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 出现时,它的视图的背景是黑色的。如何设置它的视图以使用空视图填充屏幕 - 就像在 Storyboard 中设置 UIViewController 时一样?

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

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

【问题讨论】:

  • 你确定视图的背景颜色是白色的吗?

标签: objective-c uiview uiviewcontroller


【解决方案1】:

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

您可以在-viewDidLoad 中添加自己的视图,然后在-viewDidUnload 中再次删除它们(出于内存不足的原因)。

【讨论】:

    【解决方案2】:

    您可以添加带有自定义图像的 UIImageView,然后将其发送回 所以在你的视图控制器中viewDidLoad

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

    【讨论】:

      【解决方案3】:

      如果你使用的是 XIB 文件,你应该通过 initWithNibName: bundle: 方法初始化视图控制器

      【讨论】:

        猜你喜欢
        • 2021-03-13
        • 2010-11-26
        • 2023-03-28
        • 2019-05-28
        • 1970-01-01
        • 2015-12-07
        • 2012-08-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多