我知道您需要使用以下方法并以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
我不会在其中放置所有代码,尽管如此,所有代码都可以正常运行,但是我仍将Delete用作按钮的标题而不是Close。
Three20图书馆修订的工作守则
我遇到的问题是我在为UITableView的委托使用TTTableViewDragRefreshDelegate。我是通过以下方法这样做的:
- (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
最佳答案
这是UITableView的委托方法。您需要在将实例设置为TableView委托的类中实现它。
尝试将TableView的delegate
属性设置为PositionsController
的实例。