是否可以为扩展UIView的自定义类实现initWithNubName。UIView的iOS initWithNibName
实施例:
.H
@interface UIPullerView : UIView
{
}
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil;
的.m
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
NSBundle *bundle = nibBundleOrNil==nil ? [NSBundle mainBundle] : nibBundleOrNil;
NSString *nibName = nibNameOrNil==nil ? @"UIPullerView" : nibNameOrNil;
if (self == [[bundle loadNibNamed:nibName owner:self options:nil] objectAtIndex:0])
{
NSLog(@"yes, the same class");
}
return self;
}
一些控制器类调用此
UIPullerView *puller = [[UIPullerView alloc] initWithNibName:nil bundle:nil];
因为我不这不是一个工作示例” t设置第一个XIB ob投身于自我。如果我愿意,我会放松对主要课堂的引用权利?所以我想添加一个方法来读取XIB文件并将对象从XIB复制到自己。我不想使用UIViewController而是使用UIView,因此不应该将其他视图添加到主视图。
硒也是我如何设置XIB:
我会做
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
...
self = [[bundle loadNibNamed:nibName owner:self options:nil] objectAtIndex:0]
return self;
}
,但这是不正确的是真的吗?
这可能吗?
我我不知道我明白你想要什么实现。 – onnoweb
我只想将initWithNibName方法添加到扩展UIView(而不是UIViewController)的类中。 – xpepermint
我不这么认为。 “initWithNibName”方法是在SDK中的类UIViewController中定义的,而不是在UIView中定义的,因此您无法在继承UIView的类中重写该方法。 – indiantroy