UITableView,自定义单元格未进入编辑模式

时间:2011-06-16 04:09:06

标签: ios uitableview

我有一个带有自定义UITableViewCells的UITableView。

  1. 该表有两个部分,第一部分有一行带有UITextField,只能根据文本进行编辑。本节&无法从UITableView透视图

  2. 编辑行
  3. 第二部分是从NSArray生成的单元格列表。这些单元格再次是由两个UITextField组成的自定义UITableViewCells。从用户可以删除和插入行的意义上来说,可以从UITableView透视图编辑这些单元格。

  4. 在我指定的初始值设定项中,我指定了self.tableView.editing = YES,我也实现了方法canEditRowAtIndexPath以返回YES。

  5. 问题陈述

    表格视图不会进入编辑模式。我没有看到删除按钮或插入第2节行的按钮。我缺少什么?

2 个答案:

答案 0 :(得分:6)

只是一个建议,检查您的控制器是否符合这些要求:

我使用通常的UIViewController,它工作正常 - 你需要:

  1. 使您的控制器成为UITableViewDelegate,UITableViewDataSource
  2. 的委托
  3. implement - (void)setEditing:(BOOL)编辑动画:(BOOL)动画
  4. 以编程方式添加EDIT按钮 - self.navigationItem.rightBarButtonItem = self.editButtonItem(如果您从构建器添加EDIT按钮,则需要手动调用setEditing:YES)
  5. 一段代码:)

    - (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath 
    {
        return UITableViewCellEditingStyleDelete;
    }
    
    - (void)setEditing:(BOOL)editing animated:(BOOL)animated 
    {
        [super setEditing:editing animated:animated];
        [self.tableView setEditing:editing animated:YES];
    }
    
    - (void)tableView 
        :(UITableView *)tableView didSelectRowAtIndexPath 
        :(NSIndexPath *)indexPath
    {
        [self.tableView deselectRowAtIndexPath:indexPath animated:NO];
        [self.navigationController popViewControllerAnimated:YES];
    }
    
    - (void)viewDidLoad
    {
        [super viewDidLoad];
        self.navigationItem.rightBarButtonItem = self.editButtonItem;
    }
    
    // do not forget interface in header file
    
    @interface ContactsController : ViewController<
        UITableViewDelegate,
        UITableViewDataSource>
    

    利润!

答案 1 :(得分:1)

如果您执行[self tableView setEditing:YES animated:YES];而不是self.tableView.editing = YES;怎么办?