1

我在 nib 文件中创建了自己的自定义单元格,但收到一个我不理解的错误。

[self presentViewController:_myMail animated:YES completion:nil];

在这一行中,我收到错误No visible @interface for "LeadCell" declares the selector presentViewController:animated:completion: LeadCell 是自定义控制器的名称。我想创建一个用户单击按钮并打开邮件编辑器视图以发送电子邮件的操作。

任何清晰度将不胜感激。

4

2 回答 2

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];
于 2013-01-07T04:03:31.793 回答
2

因为您试图从 UITableViewCell 的子类中呈现视图控制器。UITableViewCell没有这样的方法来呈现视图控制器。

presentViewController 方法是为 ViewController 及其子类声明的。

tableViewCell 不是 viewcontroller 它是 view。所以没有类似presentViewControllerfor 的方法UITableViewCell

于 2013-01-07T04:01:15.457 回答