2

を実施してcommitEditingStyle:います。ナビゲーションバーの編集ボタンをクリックすると、スワイプして削除ボタンが表示され、すべて正常に動作します。問題は、「編集」をクリックすると、そのボタンを「完了」に変更したいということです。「完了」をクリックすると、テーブルビューセルの削除ボタンが消えます。どうすればこれを行うことができますか?私がどこで間違いを犯したか。

コード スニペットを以下に示します。

- (void)viewDidLoad
{       
     UIToolbar* tools = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 133, 44.01)];
     NSMutableArray* buttons = [[NSMutableArray alloc] initWithCapacity:3];

     UIBarButtonItem* bi = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCompose target:self action:@selector(ComposeBtn)];
     bi.style = UIBarButtonItemStyleBordered;
     [buttons addObject:bi];
     [bi release];

     bi = [[UIBarButtonItem alloc]
          initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];
     [buttons addObject:bi];
     [bi release];

     bi = [[UIBarButtonItem alloc]
          initWithBarButtonSystemItem:UIBarButtonSystemItemEdit target:self action:@selector(setEditing:)];
     bi.style = UIBarButtonItemStyleBordered;
     [buttons addObject:bi];
     [bi release];

     [tools setItems:buttons animated:NO];
     [buttons release];

     self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:tools];
     [tools release];
}

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
   // Return NO if you do not want the specified item to be editable.
    return YES;
}

- (void)setEditing:(BOOL)editing animated:(BOOL)animated
{
    [super setEditing:editing animated:animated];
    [self.listOfFilesTblView setEditing:editing animated:animated];
}

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath 
{
    return UITableViewCellEditingStyleDelete;
}

以下のコード行を使用すると、すべて正常に動作します。

self.navigationItem.rightBarButtonItem=self.editButtonItem;

しかし、ナビゲーションバーに2つのボタン、1)編集、2)作成が必要です。ここで何が欠けているか教えてください。よろしくお願いします。

4

0 に答える 0