我有一个UIView的子类,想要从NIB文件中实例化它。我一直在使用这种方法:
UINib *nib = [UINib nibWithNibName:@"SSNodeToolsView" bundle:[NSBundle mainBundle]];
self = [[[nib instantiateWithOwner:self options:nil] objectAtIndex:0] retain];
...实际上这样可以正确创建对象并将所有内容链接起来。然而,该对象立即失去了对其代理的访问权限。代理通常是这样声明的:
id delegate
@property (nonatomic, assign) id delegate
@synthesize delegate
...等等。然而,当对象从其nib加载时,委托立即变为null,并忽略任何尝试为其赋值的操作。奇怪的是,这并不会导致崩溃。有人能告诉我这是为什么吗?我更喜欢使用nib加载方法,因为我的应用程序中的这些元素很可能经常重新设计,使用nib会更容易。
-Ash