我有一个图像想要显示在UIView
。在界面生成器中,UIView
是根和UIImageView
是它的孩子。
视图连接到视图控制器的视图出口,图像视图连接到图像视图出口:
@property (nonatomic, retain) IBOutlet UIImageView *imageView;
如果我尝试设置图像属性UIImageView
在可见之前,图像不会显示。
TestView *testView = [[TestView alloc] initWithNibName:@"TestView" bundle:nil];
testview.imageView.image = [logos objectAtIndex:indexPath.row];
[self.navigationController pushViewController:testView animated:YES];
但是,如果我将图像传递给控制器并将图像属性设置为viewDidLoad
,图像变得可见。
TestView *testView = [[TestView alloc] initWithNibName:@"TestView" bundle:nil];
testview.image = [logos objectAtIndex:indexPath.row];
[self.navigationController pushViewController:testView animated:YES];
- (void)viewDidLoad
{
[super viewDidLoad];
imageView.image = image;
}
是什么导致图像在第一个场景中不显示?
iOS 文档UIViewController
's initWithNibName:捆绑: http://developer.apple.com/library/ios/documentation/UIKit/Reference/UIViewController_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40006926-CH3-SW15方法指出:
……
您指定的 nib 文件不会立即加载。它在第一次访问视图控制器的视图时加载。如果您想在加载 nib 文件后执行额外的初始化,请覆盖viewDidLoad
方法并在那里执行您的任务。 ……
nib/xib 文件没有立即加载的结果(即它使用所谓的延迟加载) 表示 imageViewIBOutlet
当您尝试在第一个示例中设置 TestView 控制器中的属性时,该属性仍然为零。
在你的第二个例子中,你将其设置在viewDidLoad
这就是所谓的afternib/xib 文件已加载,因此它可以按您的预期工作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)