我知道您需要使用以下方法并以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的实例。

10-07 19:14
查看更多