如何以编程方式调用UITableView的编辑属性

时间:2010-11-22 15:50:14

标签: iphone uiviewcontroller uitableview

我在不使用NIB的情况下在我的应用上获得了UITableView。但是,因为我这样做,我无法获得通常与常规UITableView相关联的编辑属性。例如,如果我改为使用@interface TableViewController:UITableViewContoller并在导航栏上添加editButtonItem,则在按下该按钮后将自动包含删除和移动行。

然而,我的UITableView上没有任何效果。请帮忙。

// in .h
@interface TableViewController : UIViewController 
<UITableViewDelegate, UITableViewDataSource>
{
 UITableView *tView;
 NSMutableArray *aMutArray;
}



   // in .m
    -(id)init
    {
     [super initWithNibName:nil  bundle:nil]; 

     [[self navigationItem] setLeftBarButtonItem:[self editButtonItem]];
     [[self navigationItem] setTitle:@"ReorderingTableCell"];

     return self;
    }

    - (void)loadView 
    {
     [super loadView];

     CGRect tableFrame = CGRectMake(0, 0, 320, 300);
     tView = [[UITableView alloc]initWithFrame:tableFrame style:UITableViewStylePlain];
     [[self tView] setDelegate:self];
     [[self tView] setDataSource:self];

     aMutArray = [[NSMutableArray alloc] initWithObjects:@"first", @"second", @"third", nil];

     [[self view] addSubview:tView];
    }

然后是一堆委托方法,如:

- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath,
- (void)setEditing:(BOOL)flag animated:(BOOL)animated

等...

我不想详细介绍委托方法,因为我使用简单的UITableViewController创建了一个新项目,并且它可以工作。

顺便说一下,当我运行代码时,我设置断点并调用委托方法但没有任何反应。它没有给我单元格左侧的删除图标,右侧没有移动单元格图标。没有任何事情发生。

非常感谢!!!

1 个答案:

答案 0 :(得分:5)

您必须致电-[UITableView setEditing:animated:]以使表格视图进入和退出编辑模式。