0

我正在创建一个简单的绘图应用程序,它带有一个在屏幕上绘制线条的自定义视图。我正在从我的视图控制器文件中调用我的自定义视图 .m 文件中的一个方法。我已经设置好了,所以它会自动完成我的方法,这意味着它知道它存在,但没有触发。

在我的自定义视图 BezierSigCapView.m

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

在我的 View Controller.h 文件中

@property (weak, nonatomic) BezierSigCapView *myView;

在我的 View Controller.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

Kindly check if you have connected the - (IBAction)ClearButton:(UIBarButtonItem *)sender; to the button.

于 2012-12-13T14:42:19.157 回答
0

@hermann 为我指明了正确的方向。我正在以编程方式和在界面生成器中创建视图。我删除了以编程方式创建的视图,并将 Outlet 作为属性连接到界面构建器上的视图。我还去掉了多余的“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 回答