8

Interface Builderでドラッグ接続する代わりに、コードでIBActionsとsをハードコーディングすることは可能ですか?IBOutlet

4

2 に答える 2

16

はい、それは可能です...

サンプルコード

UIButton *btnDetail = [UIButton buttonWithType:UIButtonTypeRoundedRect] ;

        [btnDetail setFrame:CGRectMake(250.0f, 15.0f, 65.0f, 20.0f)] ;
        //btnDetail.backgroundColor = [UIColor grayColor];
        [btnDetail setTitle:@"Detail" forState:UIControlStateNormal];
        [btnDetail setTitleColor: [UIColor redColor] forState: UIControlStateNormal];
        [btnDetail.titleLabel setFont:[UIFont fontWithName:@"Verdana" size:12]];
        [btnDetail setBackgroundColor:[UIColor clearColor]];
        [btnDetail sizeThatFits:btnDetail.frame.size];
        [self.view addSubview:btnDetail];
//IBAction
        [btnDetail addTarget:self 
                   action:@selector(ShowSavingAccountDetail:)
         forControlEvents:UIControlEventTouchUpInside];

        [btnDetail setImage:[UIImage imageNamed:@"btn-detail.png"] forState:UIControlStateNormal];
于 2010-03-30T10:30:23.200 に答える
13

IBActionとIBOutletの概念と唯一の目的は、xibをコードに接続する手段をInterfaceBuilderに提供することです。

コードでInterfaceBuilderを使用したくない場合は、IBActionまたはIBOutletは必要ありません。これらは、クラスからxibにインスタンス化されたオブジェクト(ボタン、テキストフィールドなど)を使用する場合にのみ必要です。

そうは言っても、mihirpmehtaの答えは、プログラムでUI要素をビューに追加し、それらにアクションを追加する正しい方法です。

于 2010-03-30T16:37:43.840 に答える