0

画面に線を引くカスタムビューを備えたシンプルな描画アプリを作成しています。ビューコントローラファイルからカスタムビュー.mファイルのメソッドを呼び出しています。メソッドをオートコンプリートするように設定しました。つまり、メソッドが存在することは認識していますが、起動していません。

私のカスタムビューでBezierSigCapView.m

- (void)erase {
    path = [UIBezierPath bezierPath];
    [pointsArray removeAllObjects];
    [self setNeedsDisplay];
    NSLog(@"ERASE!");
}

私のViewController.hファイル

@property (weak, nonatomic) BezierSigCapView *myView;

私のViewController.mファイル

/// in viewDidLoad
BezierSigCapView *theView = [[BezierSigCapView alloc] init];
self.myView = theView;

/// my button code
- (IBAction)ClearButton:(UIBarButtonItem *)sender {
    [self.myView erase];
    NSLog(@"Should Erase");
}
4

2 に答える 2

0

ボタンに接続されているかどうかを確認してください- (IBAction)ClearButton:(UIBarButtonItem *)sender;

于 2012-12-13T14:42:19.157 に答える
0

@hermannは私を正しい方向に向けました。私はプログラムとインターフェイスビルダーでビューを作成していました。プログラムで作成したビューを削除し、OutletをInterfaceBuilderのビューにプロパティとして接続しました。また、冗長な「theView」も削除しました。

//In view controller.h file
@property (strong, nonatomic) IBOutlet BezierSigCapView *myView;

//In view controller.m file
//in the implementation
@synthesize myView;

//I also removed the code below from the view controller.m file that was causing another issue
self.myView = [[BezierSigCapView alloc] init];
于 2012-12-14T14:46:50.753 に答える