我一定是在做傻事,但我看不清楚:当按下导航的编辑按钮时,我的UITableViewController
子类永远不会被调用。
可能导致什么?
我的视图层次结构从Nib文件加载并放入弹出窗口。 [+]按钮连接到insertNewObject
子类的UITableViewController
操作。它工作正常。
但是[编辑]按钮无法连接。该文档说它将自动调用视图控制器的setEditing:animated:
方法,我将覆盖它。
nib文件的设置与通常的AFAICT相同。事实上,我不确定我能提出哪些额外的细节会暗示我的错误。
点击[编辑]按钮到调用setEditing:animated
方法的控制流程是什么?
答案 0 :(得分:0)
我觉得我们必须错过同样的事情。
无论如何,我通过以下方式使其成功。
IBOutlet UIBarButtonItem *editButton;
-(IBAction)editButtonPressed:(id)sender {
[self setEditing:YES animated:YES];
}
- (void)setEditing:(BOOL)editing animated:(BOOL)animate
{
if(self.tableView.isEditing)
{
self.editButton.style = UIBarButtonItemStylePlain;
self.editButton.title = @"Edit";
}
else
{
//self.editButton.style = UIBarButtonSystemItemDone;
self.editButton.style = UIBarButtonSystemItemEdit;
self.editButton.title = @"Done";
}
// Toggle table view state
[super setEditing:!self.tableView.isEditing animated:animate];
}
我将editButton连接到我添加到导航栏的按钮,它是对editButtonPressed IBAction的操作。完成后我的setEditing:被调用(显然),超级调用切换表视图的编辑状态。
我想使用系统定义的按钮样式,但是相应的一个被注释掉,因为虽然它确实改变了样式但我无法弄清楚如何将文本从“编辑”更改为“完成”所以我有手动完成所有操作(仅当我将按钮保留为自定义并且通常设置样式时才有效)。这具有不被本地化(免费)等的缺点。