gpt4 book ai didi

objective-c - 确保在调用 loadView 之前完全设置 UIViewController

转载 作者:行者123 更新时间:2023-11-28 23:12:21 25 4
gpt4 key购买 nike

有一个使用 UIImageViewUIViewController,并且该 ImageView 使用图像数据 (NSData) 进行初始化。它不使用 XIB,而是以编程方式创建其 View :

- (void)loadView
{
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageWithData:self.imageData]];
scrollView = [[UIScrollView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
scrollView.contentSize = imageView.bounds.size;
scrollView.delegate = self;
[scrollView addSubview:scrollView];
}

该数据必须由另一个 Controller 设置,该 Controller allocinit,并将此 View Controller 推送到导航 Controller 上:

ImageViewController *imageViewController = [ImageViewController alloc] init];
imageViewController.imageData = someData;
[self.navigationController pushViewController:imageViewController animated:YES];

我怎么知道所有需要完成的事情(在本例中是设置数据)都在调用 loadView 之前完成?或者,我不知道,我必须创建一个自定义初始化程序,或者在 View Controller 接收到数据时以某种方式再次调用 loadView 吗?

我遇到过很多类似的情况,我对会发生什么感到困惑,例如 UITableViewController

最佳答案

How do I know that everything that needs to be done, which in this case, is setting the data, is done before loadView is called?

因为文档提到 View Controller 在需要时才加载它们的 View 。在导航 Controller 尝试将其推送到屏幕之前,不需要 View Controller 的 View 。

此外,将 imageData 分配给 ImageView 的正确位置可能是 viewDidLoad(“如果您想对 View 执行任何其他初始化,请在viewDidLoad 方法。”)。并且您的 loadView 方法在其当前形式下不会执行任何可见的操作。您必须在该方法中将 View 分配给 View Controller 的 view 属性。

关于objective-c - 确保在调用 loadView 之前完全设置 UIViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7867529/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com