0

SOで見つけたすべての答えを試したので、別の問題があるか、熱が頭に浮かびました。

とにかく、ストーリーボードに UIButton があり、_cameraButtonPress という IBAction にリンクされています (UIButton は _cameraButton と呼ばれます)。ボタンが押されたら、ボタンを一時的に無効にしたいので、すぐに [sender setEnabled:NO] を呼び出します。これはうまくいきます。ただし、画像を保存する別の関数では、保存が成功すると [_cameraButton.setEnabled:YES]; を使用します。これは動作しません。

IBAction によって呼び出される関数で、sender を _cameraButton に置き換えると、これも機能しません。IBOutlet にリンクされた UIButton があります。

コードを投稿することはできますが、現在はかなり大きなプロジェクトです。関連するビットは次のとおりです。

ヘッダーに…

IBOutlet UIButton *_cameraButton;

IBアクション...

- (IBAction) _cameraButtonPress:(id)sender {

[sender setEnabled:NO];  //stops button responding to touch events

別の機能でさらに下に:

} else {
    NSLog(@"colour image saved successfully");
    [_cameraButton setEnabled:YES];


}

何か案は?

ありがとう。

4

2 に答える 2

5

_cameraButton を に接続しましたUIButtonか? _cameraButton をログに記録して、有効なオブジェクトへの参照が保持されているかどうかを確認してください。

NSLog(@"%@", _cameraButton);
于 2012-05-27T15:17:02.203 に答える
1

ポールの答えは最も論理的な問題です。

余談ですが、下線規則は ivar とプロパティを区別するために使用されます。したがって、次のようなプロパティがあります (ARC の場合):

@property (nonatomic, weak) IBOutlet UIButton *cameraButton;

そして、ivar が必要な場合、@synthesizeステートメントは次のようになります。

@synthesize cameraButton = _cameraButton;

これはおそらく他のプロパティよりもボタンとの関連性が低くなりますが、プロパティ自体ではなく、宣言されたプロパティに関連付けられた ivar にアンダースコアを使用することをお勧めします。

Apple の Cocoa のコーディング ガイドラインの名前付けプロパティとデータ型を参照してください。

于 2012-05-27T15:22:00.620 に答える