Und*_*ion 2 iphone objective-c
我想要在里面显示一个图像UIView.在Interface Builder中,它UIView是根,a UIImageView是它的子.
视图连接到视图控制器的视图插座,图像视图连接到图像视图插座:
@property (nonatomic, retain) IBOutlet UIImageView *imageView;
Run Code Online (Sandbox Code Playgroud)
如果我尝试UIImageView在可见之前设置图像属性,则图像不会显示.
TestView *testView = [[TestView alloc] initWithNibName:@"TestView" bundle:nil];
testview.imageView.image = [logos objectAtIndex:indexPath.row];
[self.navigationController pushViewController:testView animated:YES];
Run Code Online (Sandbox Code Playgroud)
但是,如果我将图像传递给控制器并将图像属性设置为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;
}
Run Code Online (Sandbox Code Playgroud)
是什么导致图像在第一个场景中不显示?
iOS的文档要UIViewController的initWithNibName:束:方法规定:
...您指定的nib文件不会立即加载.它是在第一次访问视图控制器的视图时加载的.如果要在加载nib文件后执行其他初始化,请覆盖该
viewDidLoad方法并在那里执行任务....
nib/xib文件未立即加载的结果(即它使用所谓的延迟加载)意味着IBOutlet当您尝试在第一个示例中设置时,TestView控制器中的imageView 属性仍为nil.
在第二个示例中,您将在加载nib/xib文件后viewDidLoad调用它,因此它可以按预期工作.
| 归档时间: |
|
| 查看次数: |
2552 次 |
| 最近记录: |