代码之家  ›  专栏  ›  技术社区  ›  oky_sabeni

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

  •  2
  • oky_sabeni  · 技术社区  · 14 年前

    我在我的应用程序上得到了一个不使用NIB的UITableView。但是,因为我是这样做的,所以无法获取通常与常规UITableView关联的编辑属性。例如,如果我改为使用@interface TableViewController:uitableviewcontroller并在导航栏上添加一个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
    

    等。。。

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

    顺便说一句,当我运行代码时,我设置了断点,并调用了委托方法,但是什么都没有发生。它不会在单元格左侧显示删除图标,在右侧显示不移动的单元格图标。什么都没发生。

    非常感谢!!!

    1 回复  |  直到 14 年前
        1
  •  5
  •   Ole Begemann    14 年前

    你必须打电话 -[UITableView setEditing:animated:] 使表视图进入和退出编辑模式。