gpt4 book ai didi

ios - UITableView 防止子类的委托(delegate)方法

转载 作者:行者123 更新时间:2023-11-28 22:11:30 25 4
gpt4 key购买 nike

我所有的 UIViewController 都是从一个 ViewController 继承的,基础 viewController 有一个 UITableView,如下所示:

BaseViewController.h

@interface BaseViewController : UIViewController<UITableViewDelegate,UITableViewDataSource> 

@property (nonatomic, retain) UITableView *menuTableView;

BaseViewController.m

- (void)viewDidLoad

{
_menuTableView = [[UITableView alloc] initWithFrame:CGRectMake(.......];
_menuTableView.delegate = self;
_menuTableView.dataSource = self;
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView;
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section; ... ETC

在我的另一个 viewController 中:SPViewController.h

@interface SPViewController : BaseViewController <UITableViewDataSource,UITableViewDelegate>{

UITableView *myTableView;
}

SPViewController.m

- (void)viewDidLoad

{
myTableView = [[UITableView alloc] initWithFrame:CGRectMake(.......];
myTableView.delegate = self;
myTableView.dataSource = self;
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView;
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section; ... ETC

每次我到达割线 UITableView 时,我发现第一个 (_menuTableView) 的数据和值以及高度和 Action ......等,是一样的第二个(myTableView)。

如何防止继承其他类的类中的UITableView调用子类的delegate方法?

最佳答案

你不能,这就是 OOP 的工作方式。

您的子类需要知道父类(super class)可能正在使用不同的 TableView 进行调用。它应该使用 if 语句来检查传递给委托(delegate)方法的 tableView,然后调用 super(本身什么也不做)或运行它的自己的逻辑。

关于ios - UITableView 防止子类的委托(delegate)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22808235/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com