0

最新の SDK を使用して iOS アプリを開発しています。

UIViewXIB ファイルを使用して、カスタムおよびセット レイアウトを作成したいと考えています。

この XIB に、UIButtonInterface Builder を使用して 4 つの を追加しました。

UIViewここで、これら 4 つのボタンをカスタムクラスに接続し、そこで管理したいと考えていIBActionsます。これは非常に重要です。私はこのようにしなければなりません。

xib をロードするには、次のようにします。

- (id)initWithCoder:(NSCoder *)aDecoder {
    if ((self = [super initWithCoder:aDecoder]))
    {
        [self addSubview:[[[NSBundle mainBundle] loadNibNamed:@"MyCustomView"
                                                        owner:self
                                                      options:nil] objectAtIndex:0]];
    }
    return self;
}

ストーリーボードもあり、 Interface Builder を使用UIViewしてメインに追加しました。ViewController

私の質問は、新しい XIB ファイルをInterface Builderのカスタムに接続するにはどうすればよいですか?UIView

Interface Builder でこの新しい xib を開き、メインViewControllerをファイルの所有者として設定し、カスタムUIViewクラスをこの新しい XIB のビューのクラスとして設定する必要があると思いますが、よくわかりません。

そして、メインViewControllerで、この新しいビューのクラスを my custom に変更しますUIView

4

2 に答える 2

1

Interface Builder で、カスタム クラスを に設定しますCustomView。このカスタム クラスに接続します。このxibを使用するView Controllerで、loadNibNamed:owner:options:メソッドを使用してnibをロードするだけです。

CustomView *cView = [[[NSBundle mainBundle] loadNibNamed:@"CustomView"
                                                    owner:nil
                                                  options:nil] objectAtIndex:0];
[cView.button1 addTarget:self action:@selector(actnForBtn1:) forControlEvents:UIControlEventTouchUpInside];
[cView.label1 setText:@"sometext"];
[self.view addSubview:cView];

また、View Controller にメソッドを追加してactnForBtn1:(id)sender、別の View Controller で別のことを行うようにしてください。

于 2013-03-13T10:01:59.343 に答える
0

View.h で

+(View *)loadViewFromNib;

In View.m

+(View *)loadViewFromNib{
    return (View *)[[[NSBundle mainBundle] loadNibNamed:@"View" owner:self options:0] objectAtIndex:0];
}

View 呼び出しをロードするには

View *view = [View loadViewFromNib];

View.xib ファイルで、Files Owner クラスを Viewに設定し、Views クラスを Viewに設定して、アウトレットをビューのみに接続し、FilesOwner には接続しません。

于 2013-03-13T09:19:42.807 に答える