在自定义视图中调用方法

时间:2012-12-13 14:26:04

标签: objective-c ios xcode

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

在我的自定义View 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");
}

2 个答案:

答案 0 :(得分:0)

请检查您是否已连接- (IBAction)ClearButton:(UIBarButtonItem *)sender;  按钮。

答案 1 :(得分: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];