我正在尝试实现自定义UITableViewCell
,我希望从单元子类访问父tableView。我正在创建一个允许我指定tableview的自定义init方法,但遇到了错误。
我尝试声明__weak UITableView *_tableView;
的iVar但是,我收到一个错误声明它是一个重复的声明。我查看了UITableViewCell
头文件,果然,有一个
@private
UITableView *_tableView;
这很好,因为我认为iOS会为我设置这个,但是我想知道我是否可以使用它,或者这是否会让我的应用程序被拒绝。没有关于这方面的文件,我没有发现任何在线任何地方的提及。
有什么想法吗?
答案 0 :(得分:0)
你是不是试图访问私人ivar。我建议不要费心去传递superview,但只是使用表格单元格可用的内容来查找它的封闭tableView
的UIView + mytable.h:
#import <UIKit/UIKit.h>
@interface UIView (mytable)
- (UITableView *)mySuperTableView;
@end
的UIView + mytable.m:
#import "UIView+dsltable.h"
@implementation UIView (dsltable)
- (UITableView *)mySuperTableView
{
if ( [self isKindOfClass: [UITableView class]] )
return (UITableView *)self;
return [self.superview mySuperTableView];
}
@end
答案 1 :(得分:0)
不,您无法访问未记录的私人ivar。您需要添加具有不同名称的ivar,或者通过获取单元格的超级视图来获取表格视图。