是否可以爲擴展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