我在不使用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创建了一个新项目,并且它可以工作。
顺便说一下,当我运行代码时,我设置断点并调用委托方法但没有任何反应。它没有给我单元格左侧的删除图标,右侧没有移动单元格图标。没有任何事情发生。非常感谢!!!
答案 0 :(得分:5)
您必须致电-[UITableView setEditing:animated:]
以使表格视图进入和退出编辑模式。