我明白你需要使用以下方法并返回你想要的新标题作为NSString。但是我不知道把这个方法放在哪里。通常它应该放在哪里?
我已经在我的TableViewController中尝试过它,但它不起作用:
实现,执行,落实。
我不会把所有的代码都放在这里,尽管一切都按照预期运行,但我的按钮标题仍然是“Delete”而不是“Close”。
这样很好,但是如果你想覆盖 UITableViewDelegate 调用的方法,就像我在这里尝试做的那样,那么你需要创建自己的委托类,该类继承 TTTableViewDragRefreshDelegate 并将你的方法覆盖放在那个类中。 这是我的可行代码的样子:
- (NSString *)tableView:(UITableView *)tableView
titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath
{
return @"Close";
}
我已经在我的TableViewController中尝试过它,但它不起作用:
接口
#import <Three20/Three20.h>
@interface PositionsController : TTTableViewController {
}
@end
实现,执行,落实。
#import "PositionsController.h"
#import "NetworkController.h"
#import "PositionsDataSource.h"
@implementation PositionsController
- (id) init {
if (self = [super init]) {
self.variableHeightRows = NO;
}
return self;
}
- (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath
{
return @"Close";
}
@end
我不会把所有的代码都放在这里,尽管一切都按照预期运行,但我的按钮标题仍然是“Delete”而不是“Close”。
Three20库修订后的工作代码
我遇到的问题是,我正在使用TTTableViewDragRefreshDelegate作为我的UITableView委托。我是通过以下方法来实现的:
- (id<UITableViewDelegate>)createDelegate {
return [[[TTTableViewDragRefreshDelegate alloc] initWithController:self] autorelease];
}
这样很好,但是如果你想覆盖 UITableViewDelegate 调用的方法,就像我在这里尝试做的那样,那么你需要创建自己的委托类,该类继承 TTTableViewDragRefreshDelegate 并将你的方法覆盖放在那个类中。 这是我的可行代码的样子:
修改后的 PositionsController.m createDelegate 方法
- (id<UITableViewDelegate>)createDelegate {
return [[[PositionsTableDelegate alloc] initWithController:self] autorelease];
}
PositionsTableDelegate.h
#import <Three20/Three20.h>
@interface PositionsTableDelegate : TTTableViewDragRefreshDelegate <UITableViewDelegate> {
}
@end
PositionsTableDelegate.m
#import "PositionsTableDelegate.h"
@implementation PositionsTableDelegate
- (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath
{
return @"Close";
}
@end