【发布时间】:2013-08-09 02:21:58
【问题描述】:
我有一个视图控制器,里面有一个UIButton。我在那个接受签名的视图控制器中有一个UIView。有一个与UIView 关联的.h 和.m 文件。 UIView's .m 文件有一个擦除方法。我希望我的视图控制器中的UIButton 能够调用该擦除方法,但我不知道该怎么做。这是我正在尝试的代码:
-(IBAction)clearButtonPressed:(id)sender
{
SignatureView *SC = [[SignatureView alloc] init];
[SC erase];
NSLog(@"Pressed");
}
NSLog 有效,所以我知道正在调用该操作。什么给了?
编辑:
答案有效;有点像。
NSLog(@"Erased"); 正在工作,所以我知道该按钮正在工作,但它不会擦除。这是擦除代码:
- (void)erase {
path = [UIBezierPath bezierPath];
[self setNeedsDisplay];
NSLog(@"Erased");
}
【问题讨论】:
-
您正在创建一个全新的
SignatureView实例,然后在其上调用erase,然后永远忽略它。你需要在你的视图控制器已经拥有的实例上调用erase。 -
@CarlVeazey - 明白了。 UIView 在哪里初始化?
-
代码中的某处,或 nib / 故事板中。搜索
SignatureView alloc或SignatureView new之类的字符串,并查看 nib 中的视图层次结构,使用 Inspector 检查每个视图的类。 -
检查此代码github.com/MasudShuvo/TestUIViewMethodCall,这里还设置了一个委托以获取该方法已被调用的响应。
标签: ios objective-c xcode uiview uiviewcontroller