1

そこで、再利用可能なウィジェットを、一定量の特定の画面に表示できる xib およびサブビューとして作成したいと考えています。このウィジェットには 3 つのボタンがあり、それぞれにアクションがあります。

複数のビューコントローラーでこれらのアクションを処理できるようにしたいと考えています。

つまり、ViewControllerA、ViewControllerD、および ViewControllerF は、それぞれ独自の方法で 3 つのボタン イベントを処理できるとします。

nibファイルを作成しました。それを特定のビューコントローラーにインポートするにはどうすればよいですか?そして、それらのイベントをどのように結び付けるのですか?

編集:ビューコントローラーを介してアウトレットを設定できる可能性があることは知っていますが、Apple は、UIViewController は全画面表示専用であり、ウィジェットは画面のごく一部しか占めていないと述べています。

4

2 に答える 2

1

あなたは正しくやった。一つは、iOSそれはウィジェットではありませんUIView

(申し訳ありませんが、私のコードにはタイプミスがあるかもしれません。私は StackOverflow で自分自身を書いています)

以下の手順に従って完了してください。

1)xibビューの を作成したら、サブクラス ファイルを作成する必要がありますUIViewxibCustomView.xibCustomView.m

2)CustomView.xibで、 を として設定する必要がありfileOwnerますCustomView.h

3)CustomView.mファイルには、次のようなinitWithFrame:メソッドがあります。そのメソッドでは、このように xib ファイルをロードする必要があります。

NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"CustomView" owner:self options:0];
UIView *currentView = [topLevelObjects objectAtIndex:0];
[self addSubView:currentView];

4) もうすぐ終わります。どのView Controllerでも、このxibを次のように使用できます

CustomView *newSubView = [[CustomView alloc]initWithFrame:CGRectMake(0,0,55,67)];
[self.view addSubView:newSubView];

それだけです..続けて..

于 2012-12-07T16:22:47.280 に答える
0

nib ファイルを作成しましたが、その nib ファイルのコントローラーとなる .h および .m ファイルも作成したことを確認してください。他のView Controllerが独自の方法でキャプチャして操作できるデリゲートメソッドを実装する方法を調べる必要があります。カスタム デリゲートを使用したカスタム クラスの作成を開始するための優れたチュートリアルを次に示します。リンク

于 2012-12-07T15:53:17.510 に答える