0

IB を使用して作成したオブジェクト/コントロールは、クラス メソッドからアクセスできますか?

@ネクト:

@interface CopyController : UIViewController
{
    UIActivityIndicatorView *myActivity;
}

@property (nonatomic, retain) IBOutlet UIActivityIndicatorView *myActivity;
+(void) activityIndicator:(BOOL)flag;

@end

.m でのこの実装は許可されません。エラーは「インスタンス変数 'myActivety' がクラス メソッドでアクセスされました」でした。

+(void)activityIndicator:(BOOL)flag
{
    if (flag)
        [myActivity startAnimating];
    else
        [myActivity stopAnimating];
}
4

2 に答える 2

1

はい、アクセス可能です。

を追加@property IBOutlet ib_object_class *ib_object_name;し、IB でそのオブジェクト設定を開き、ドロップダウン メニューでFile's Owner選択して参照アウトレットを設定する必要があります。ib_object_name

完全な説明は、たとえばここにあります:コンセントの作成と接続

于 2011-09-07T13:39:58.507 に答える
0

これを実現するために、ファイルの所有者ではなくファーストレスポンダーにアウトレットを接続できる場合がありますが、IBOutletプロパティはインスタンスレベルの変数になるため、クラスメソッド内からアウトレットにアクセスすることはできないと思います。

ここで、アクションを複数のファーストレスポンダーにリンクするための類似したものを見つけました。

于 2011-09-07T16:04:19.893 に答える