1

Objective C と Xcode は初めてなので、しばらくお待ちください!! 5 つのボタンと 1 つのリセット ボタンを制御するプログラムを作成しました。5 つのボタンのいずれかが押された場合、リセット ボタンが押されるまで、それらはすべて無効 (グレー表示) になります。これが私の試みです:

ViewController.h

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController{
    IBOutlet UIButton *button1;
    IBOutlet UIButton *button2;
    IBOutlet UIButton *button3;
    IBOutlet UIButton *button4;
    IBOutlet UIButton *button5;
    IBOutlet UIButton *resetButton;
}
    @property(retain,nonatomic)UIButton *button1;
    @property(retain,nonatomic)UIButton *button2;
    @property(retain,nonatomic)UIButton *button3;
    @property(retain,nonatomic)UIButton *button4;
    @property(retain,nonatomic)UIButton *button5;
    @property(retain,nonatomic)UIButton *resetButton;
    - (IBAction)anyButtonPressed:(UIButton *)sender;
    - (IBAction)resetPressed:(UIButton *)sender;

@end

ViewController.m

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

@synthesize button1, button2, button3, button4, button5, resetButton;

- (void)viewDidLoad
{
    [super viewDidLoad];
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
}

-(IBAction)anyButtonPressed{
    button1.enabled = NO;
    button2.enabled = NO;
    button3.enabled = NO;
    button4.enabled = NO;
    button5.enabled = NO;

}

-(IBAction)resetPressed{
    button1.enabled = YES;
    button2.enabled = YES;
    button3.enabled = YES;
    button4.enabled = YES;
    button5.enabled = YES;

}

@end

しかし、ViewController の横に不完全な実装が表示され、シミュレーターでボタンを押すとクラッシュします。お願い助けて?また、これを実装するためのより簡単な方法を提案してください!

4

1 に答える 1

1

ボタンアクションメソッドのシグネチャが実装で正しくありません。コードを次のように変更します。

-(IBAction)anyButtonPressed:(UIButton *)sender {
    button1.enabled = NO;
    button2.enabled = NO;
    button3.enabled = NO;
    button4.enabled = NO;
    button5.enabled = NO;
}

-(IBAction)resetPressed:(UIButton *)sender {
    button1.enabled = YES;
    button2.enabled = YES;
    button3.enabled = YES;
    button4.enabled = YES;
    button5.enabled = YES;
}
于 2012-11-12T23:54:38.940 に答える