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];
呼び出します最初のXIB obを設定する自己に捧げる。もし私がメインクラスの権利を参照してくれるのであれば?ですから、私はXIBファイルを読んで、XIBから自己にオブジェクトを複製するメソッドを追加したいと思います。 UIViewControllerを使用するのではなく、UIViewを使用したいので、メインビューに追加のビューを追加する必要はありません。
Seのも、私はXIBを設定する方法:
私は
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
...
self = [[bundle loadNibNamed:nibName owner:self options:nil] objectAtIndex:0]
return self;
}
を行うだろうが、これは右の真実ではないのですか?
これは可能ですか?
Iあなたが何をしようとしているのか分からない達成する。 – onnoweb
私はUIView(UIViewControllerではなく)を拡張するクラスにinitWithNibNameメソッドを追加したいだけです。 – xpepermint
私はそうは思わない。メソッド "initWithNibName"は、SDKのUIViewControllerクラスで定義され、UIViewでは定義されないため、UIViewを拡張するクラスでそのメソッドをオーバーライドすることはできません。 – indiantroy