2

我正在创建我拥有的项目FirstViewController。在FirstViewController我已经放入UITableView,并以正确的方式显示所有数据。在myTableView我把功能编辑UITabelView删除或插入行

我打开了EditBtton ( UIBarButtonItem) UINavigationBar,当我点击它时,我UITableView进入了编辑模式。

- (void) EditTable:(id)sender
{
    if(self.editing)
    {
        [super setEditing:NO animated:NO];
        [self.tblView setEditing:NO animated:NO];

        [self.navigationItem.rightBarButtonItem setTitle:@"Edit"];
        [self.navigationItem.rightBarButtonItem setStyle:UIBarButtonItemStylePlain];

        [self myCustomMethod]; // custom method

    }
    else
    {
        [super setEditing:YES animated:YES];
        [self.tblView setEditing:YES animated:YES];
        [self.tblView reloadData];
        [self.navigationItem.rightBarButtonItem setTitle:@"Done"];
        [self.navigationItem.rightBarButtonItem setStyle:UIBarButtonItemStyleDone];
    }
}

供您参考:所有工作都正确无误。


我只想知道如何进入UITableView编辑模式,即使我没有使用过UITableViewController类似的

@interface FirstViewController : UIViewController // here i have UIViewController not UITableViewController

那么当我写出我使用的条件时怎么可能,

if(self.editing)然后检查正确的方法,一般应该是if(self.tableViewObj.editing)

注意:我没有任何错误但我只想知道,这怎么可能?它是如何工作的?if(self.editing)if(self.tableViewObj.editing)哪个最适合我

4

1 回答 1

2

这都是关于你的 UIBarButtonItem。它将您的控制器切换到编辑状态。正如文件所说:

@property(nonatomic, getter=isEditing) BOOL 编辑讨论 如果是,视图控制器当前允许编辑;否则,否。

如果视图是可编辑的,并且相关的导航控制器包含一个编辑完成按钮,则显示一个完成按钮;否则,将显示编辑按钮。单击任一按钮可切换此属性的状态。通过将导航项的自定义左视图或右视图设置为 editButtonItem 方法返回的值来添加一个编辑完成按钮。将编辑属性设置为视图的初始状态。如果视图已经显示,则使用 setEditing:animated: 方法作为操作方法来动画此状态的转换。

于 2013-04-01T08:06:25.130 回答