2010-09-05 212 views
3

我一定在做傻事,但我看不到:我的导航的编辑按钮被按下时,我的UITableViewController子类永远不会被调用。为什么我的UITableViewController的setEditing:animated:方法没有被调用?

可能是什么原因造成的?

我的视图层次结构是从一个Nib文件加载并放入弹出窗口中。 [+]按钮连接到我的UITableViewController子类的insertNewObject操作。它工作正常。

但是[编辑]按钮没有连接的动作。该文档说它会自动调用视图控制器的setEditing:animated:方法,我重写。

nib文件的设置几乎和往常一样AFAICT。事实上,我不确定我可以提供什么额外的细节会提示我的错误。

点击[编辑]按钮到拨打setEditing:animated方法的控制流程是什么?

回答

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:被调用(显然),超级调用切换表视图的编辑状态。

我想使用系统定义的按钮样式,但适当的一个被注释掉,因为虽然它改变了样式我不知道如何将文本从“编辑”更改为“完成”,所以我必须手动完成所有操作(只有当我将按钮作为“自定义”并将其样式设置为一般时才起作用)。这具有不被本地化(免费)的缺点,等等。

相关问题