2

他の要素に加えて子としてUITableViewを持つUIViewControllerがあります。この単純な行を使用して、そのtableViewに編集サポートを追加したいと思います。

self.navigationItem.rightBarButtonItem = self.editButtonItem;

これをUITableViewControllerビュータイプに設定すると機能しますが、サブビューであるtableViewでは明らかに機能しません。実際には編集ボタンが表示されていますが、編集アクションはトリガーされません。

とにかく、そのためのエレガントな解決策がない場合は、カスタム編集ボタンを実装するだけです。

ありがとう!

4

4 に答える 4

3
- (void)viewDidLoad
{
    [super viewDidLoad];
    self.title = @"My View Controller";
    self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemEdit target:self action:@selector(editButtonSelected:)] autorelease];

}

- (void) editButtonSelected: (id) sender
{
    if (tableView1.editing) {
        self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemEdit target:self action:@selector(editButtonSelected:)] autorelease];
        [self.tableView1 setEditing:NO animated:YES];
    } else {
        self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(editButtonSelected:)] autorelease];
        [self.tableView1 setEditing:YES animated:YES];

    }

}
于 2012-06-08T12:32:58.243 に答える
2

setEditing:animatedyourselfを実装する必要があります。

- (void)setEditing:(BOOL)editing animated:(BOOL)animated
{
    [self.tableView setEditing:editing animated:animated];
    [super setEditing:editing animated:animated];
}
于 2013-12-04T16:57:23.593 に答える
1

解決策を見つけました。self.editButtonItemそのように置き換えるself.myTableViewController.editButtonItem

self.navigationItem.rightBarButtonItem = self.myTableViewController.editButtonItem;

それは魅力のように機能します。もっと簡単でしょうか?:)

于 2012-03-15T07:18:17.440 に答える
0

self.navigationItem.leftBarButtonItem = self.editButtonItem;

于 2012-03-15T07:16:03.380 に答える