0

ユーザーが Core Data 要素を含む TableView をクリックすると読み込まれるポップアップ ビューがあります。ポップアップ ビューには、int 値を表すラベルがあります。

ポップアップ ビューには 2 つのボタンがあり、1 つはラベルの値を 1 減らすためのもので、もう 1 つはラベルの値を 1 増やすためのものです。だから + と -

私がやりたいのは、ラベルの値が 0 の場合にマイナス ボタンを無効にすることです。私が試したのは次のとおりです。

-(void)viewDidLayoutSubviews{
     NSString *daString = currentVal.text;
        NSNumberFormatter * f = [[NSNumberFormatter alloc] init];
        [f setNumberStyle:NSNumberFormatterDecimalStyle];
        NSNumber * myNumber = [f numberFromString:daString];
        int number = [myNumber intValue];
        if (number==0)
            minus.enabled = NO;
        else
            minus.enabled = YES
}

私のコードの問題は、ラベルの値を増やした後もボタンが無効のままになり、0 に等しくならないことです。何か提案はありますか?

4

4 に答える 4

1

あなたは逆のことをしているようです。私はまったく異なるアプローチをとります:

数値を保持するこの viewController にインスタンス変数 (「count」と呼びます) を保持します。NSInteger にすることができます。@selector(buttonPressed:) を使用して、両方のボタンにターゲット (self) を追加します。このセレクターは次のようになります。

- (void)buttonPressed:(id)sender{
    if (sender==plusButton)
        self.count++;
    if (sender==minusButton)
        self.count--;
    label.text = [NSString stringWithFormat:@"%d",self.count];
    minusButton.enabled = (self.count>0);
}
于 2013-03-06T14:51:47.220 に答える
1

マイナスボタンへの参照を保持する必要があります。

@property (strong, nonatomic) IBOutlet UIButton *minusButton;

マイナスボタンの値で設定するか、Interface Builder でコンセントを接続します

plusButtonのアクションハンドラーで、そのようなことをします

-(IBAction)plusAction:(id)sender {
     //Do your business logic
     ...
     self.minusButton.enabled = YES;
}
//In your minusButton action handler
-(IBAction)minusAction:(id)sender {
     //Do your business logic
     ...
     NSString *daString = currentVal.text;
     NSNumberFormatter * f = [[NSNumberFormatter alloc] init];
     [f setNumberStyle:NSNumberFormatterDecimalStyle];
     NSNumber * myNumber = [f numberFromString:daString];
     int number = [myNumber intValue];
     if (number==0)
        self.minusButton.enabled = NO;
     else
        self.minusButton.enabled = YES
}
于 2013-03-06T15:32:56.440 に答える
0

2 つのボタンではなく、 UIStepperでこれを行うだけです。ストーリーボード/IB ファイルでプロパティを設定して、最大値と最小値、増分、およびその他の便利なものを指定することもできます。YouTubeに投稿されたいくつかのビデオ チュートリアルがあり、おそらくそれを使用するために知っておく必要があるすべてをカバーしています。

于 2013-03-06T15:17:25.337 に答える
0

また、ひとつ気になったのは… ボタンが無効な状態で、通常状態のタイトルを変更しようとすると、動かない。状態を有効に変更する必要があり、タイトルを操作して無効に戻すことができました。

于 2014-04-24T09:32:10.883 に答える