我在nib文件中创建了一个自己的自定义单元格,我收到一个我不明白的错误。
[self presentViewController:_myMail animated:YES completion:nil];
在此行中,我收到错误No visible @interface for "LeadCell" declares the selector presentViewController:animated:completion:
LeadCell是自定义控制器的名称。我想创建一个操作,用户单击该按钮,然后打开邮件编辑器视图以发送电子邮件。
任何清晰度都将受到赞赏。
答案 0 :(得分:5)
解决此问题的一种简洁方法是将视图控制器与自定义单元格一起存储,如下所示:
@interface LeadCell {
__weak UIViewController *ctrl;
}
-(id)initWithViewController:(UIViewController*)c;
...
@end
@implementation LeadCell
-(id)initWithViewController:(UIViewController*)c {
if (self = [super init]) {
ctlr = c;
}
return self;
}
@end
在“索引路径中的行的单元格”中创建新单元格时,将视图控制器传递给单元格的初始值设定项。通过这种方式,单元格可以“找到”控制器,让您使用ctrl
代替self
来编写操作代码:
[ctrl presentViewController:_myMail animated:YES completion:nil];
答案 1 :(得分:2)
因为您正在尝试从UITableViewCell的子类呈现视图控制器。 UITableViewCell
没有用于呈现视图控制器的方法。
为ViewController和它的子类声明了presentViewController方法。
tableViewCell不是viewcontroller,它是一个视图。因此presentViewController
没有像UITableViewCell
这样的方法。