开发者

Why is it that my UITableViewController setEditing:animated: method is not called?

I must be doing stupid, but I can't see what: my UITableViewController subclass is never called when the edit button of my navigation is pressed.

What could be causing that?

My view hierarchy is loaded from a Nib file an开发者_JAVA百科d put inside a popover. The [+] button is connected to the insertNewObject action of my UITableViewController subclass. It works fine.

The [Edit] button however has no action to connect to. The doc says it will automatically call the setEditing:animated: method of the view controller, which I override.

The nib file is set up pretty much as usual AFAICT. And in fact, I'm not sure what additional detail I can give that would suggest my mistake.

What is the control flow from the click on the [Edit] button to the call of the setEditing:animated method?


I feel like we must be missing the same thing.

Whatever the case, I made it work by doing the following.

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];
}

I hooked the editButton up to the button I added to the nav bar and it's action to the editButtonPressed IBAction. After doing that my setEditing: is called (obviously) and the super call toggles the table view's editing state.

I'd like to use the system defined button styles, but the appropriate one is commented out because while it did change style I couldn't figure out how to change the text from "Edit" to "Done" so I had to do it all manually (that only worked if I left the button as Custom and set the style generically). This has the downside of not being localized (for free), etc.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜