2011-03-25 130 views
14

我有一个桌面视图和导航栏在上面。UITableview编辑/完成按钮

我的导航栏左侧有一个编辑按钮,下面的代码行。

self.navigationItem.leftBarButtonItem = self.editButtonItem; 

当我点击编辑按钮,它改变完成按钮。到目前为止,一切都很好。

我在哪里添加代码,如果我想在点击完成按钮时执行一个小操作。

+0

你会考虑适当设置正确的答案? – 2014-10-06 19:05:25

回答

55

按钮停止提交更改到控制器类,一旦你重写它与self.editButtonItem.action = @selector(editClicked:);

默认的动作,你应该做的是重写UIViewController的setEditing方法在你自己的控制器类:

- (void)setEditing:(BOOL)editing animated:(BOOL)animated 
{ 
    [super setEditing:editing animated:animated]; 

    if(editing == YES) 
    { 
     // Your code for entering edit mode goes here 
    } else { 
     // Your code for exiting edit mode goes here 
    } 
} 

也需要在故事板中将UIBarButtonItem设置为“编辑”,或者如果您希望在代码中使用它,请使用以下代码:

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    self.navigationItem.rightBarButtonItem = self.editButtonItem; 
} 

editButtonItem是系统为您的舒适而设置的帮助属性。

+9

谢谢。更容易,我做了 - (void)setEditing:(BOOL)编辑动画:(BOOL)animated {[super setEditing:editing animated:animated]; [self.tableView setEditing:editing animated:animated];}' – gurooj 2012-01-21 22:03:20

+0

很酷的答案谢谢 – 2012-02-23 19:30:35

+0

这正是我所期待的。谢谢 – Andrew 2012-04-08 02:57:39

4

下面是我用了一个斯威夫特版本:

override func setEditing(editing: Bool, animated: Bool) { 
    super.setEditing(editing, animated: animated) 

    if editing { 

    } else { 

    } 
} 
相关问题