我得到你需要使用以下方法并返回你想要的新标题作为NSString。但是我不知道在哪里放这种方法。它通常放在哪里?
- (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
我不会把所有代码放在那里,但是一切都按照应有的方式运行,但我仍然删除作为我的按钮的标题,而不是关闭。< / p>
我遇到的问题是我使用 TTTableViewDragRefreshDelegate 作为 UITableView的委托。我是通过以下方法这样做的:
- (id<UITableViewDelegate>)createDelegate {
return [[[TTTableViewDragRefreshDelegate alloc] initWithController:self] autorelease];
}
这一切都很好但是如果你想覆盖 UITableViewDelegate 调用的方法,就像我在这里尝试做的那样,那么你需要创建自己的委托类来继承 TTTableViewDragRefreshDelegate 并将您的方法覆盖在该类中。以下是我的工作代码:
- (id<UITableViewDelegate>)createDelegate {
return [[[PositionsTableDelegate alloc] initWithController:self] autorelease];
}
#import <Three20/Three20.h>
@interface PositionsTableDelegate : TTTableViewDragRefreshDelegate <UITableViewDelegate> {
}
@end
#import "PositionsTableDelegate.h"
@implementation PositionsTableDelegate
- (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath
{
return @"Close";
}
@end
答案 0 :(得分:4)
这是UITableView的委托方法。您需要在类中实现它,该实例被设置为TableView的委托。
尝试将TableView的delegate
- 属性设置为PositionsController
的实例。
答案 1 :(得分:0)
您正在使用的方法是为UITableViewDelegate定义的,因此您需要为作为UITableView的委托的类定义它。
答案 2 :(得分:0)
首先,我不知道TTTableController是否正在做任何不同的事情,所以你可能会遇到问题。
您正在使用的功能仅影响实际单元格上的按钮标题(即,滑动以删除,或在用户点击减号按钮后),而不是tableView
上方的编辑按钮。
如果您想更改tableView
上方的按钮,我相信您需要创建自己的按钮并自行实施setEditing:animated:
功能。
编辑:
您正在使用的功能应该在TableView
的委托中。