UITableView编辑/完成按钮

Gav*_*vin 19 iphone uitableview

如何在导航栏上实现一个按钮,用户可以重新排序和删除UITableView的行?

我是否必须创建自己的工具栏按钮才能拥有UITableView的编辑/完成按钮?

Nek*_*kto 46

就在添加此行viewDidLoad的你UITableViewController

self.navigationItem.leftBarButtonItem = self.editButtonItem;
Run Code Online (Sandbox Code Playgroud)

如果您的表视图superview是,它将工作UINavigationController.此行将添加按钮,该按钮将在编辑模式下推出表格.


Mik*_*yev 20

通常做的是创建自己的自定义BarbuttonItem,然后将此按钮指定为右侧导航栏按钮项:

UIBarButtonItem *barButtonItem=[[UIBarButtonItem alloc]initWithTitle:@"Edit"
                                                               style:UIBarButtonItemStylePlain
                                                              target:self 
                                                              action:@selector(toggleEdit)];

self.navigationItem.rightBarButtonItem = barButtonItem;   
[barButtonItem release];
Run Code Online (Sandbox Code Playgroud)

这是toggleEdit方法:

-(void)toggleEdit{
          [self.tableView setEditing:!self.tableView.editing animated:YES]; 

          if (self.tableView.editing) 
              [self.navigationItem.rightBarButtonItem setTitle:@"Done"]; 
          else 
             [self.navigationItem.rightBarButtonItem setTitle:@"Edit"];  
}
Run Code Online (Sandbox Code Playgroud)


小智 6

UIButton *btnname=[UIButton buttonWithType:UIButtonTypeSystem];
[btnname setFrame:CGRectMake(0,0,110,35)];
[btnname setFont:[UIFont boldSystemFontOfSize:18]];
[btnname setTitle: @"Delete" forState: UIControlStateNormal];
[btnname setTitleColor:UIColorFromRGB(0xCC0707)        forState:UIControlStateNormal];
btnname.backgroundColor=UIColorFromRGB(0xE6E7E8);
btnname.showsTouchWhenHighlighted = YES;
[btnname addTarget:self
            action:@selector(toggleEdit)
forControlEvents:UIControlEventTouchDown];
UIBarButtonItem *barItem = [[UIBarButtonItem alloc] initWithCustomView:btnname];
self.navigationItem.rightBarButtonItem = barItem;


-(void)toggleEdit{
    [self.tableView setEditing:!self.tableView.editing animated:YES];

    if (self.tableView.editing)
         [btnname setTitle: @"Done" forState: UIControlStateNormal];
    else
         [btnname setTitle: @"Delete" forState: UIControlStateNormal];
}
Run Code Online (Sandbox Code Playgroud)