2010-12-14 41 views
7

Có phương thức thông báo hoặc ủy quyền nào mà tôi có thể sử dụng để phát hiện khi chế độ xem bảng chuyển sang trạng thái chỉnh sửa không?UITableView Chỉnh sửa/Xong sự kiện

Điều tôi muốn làm là phát hiện rằng bảng đang chỉnh sửa và sau đó hiển thị một hàng bổ sung có nội dung "Thêm mục mới" hoặc nội dung tương tự.

Tôi đã thử thêm hàng "Thêm mục mới" vào cuối mảng khi Bộ điều khiển xem được tải và sau đó tùy thuộc vào việc [tableView isEditing] có đúng hay không, hoặc trả về [mảng đếm] (khi tôi đang chỉnh sửa) hoặc [số đếm mảng] - 1 (khi tôi không chỉnh sửa).

Bất kỳ ý tưởng nào? Cách Apple chỉnh sửa các mục trong bảng và cho phép xóa là gì?

Trả lời

6

Tôi đã tìm thấy. Ghi đè phương pháp này:

- (void)setEditing:(BOOL)editing animated:(BOOL)animated{ 
    [super setEditing:editing animated:animated]; 

    // do something 
} 
3

Điều bạn có thể làm là thêm IBAction làm công cụ chọn vào nút chỉnh sửa của bạn. Khi editButton được khai thác, phương thức đó sẽ được gọi. Ví dụ:

-(void)viewDidLoad 
{ 
// ... 
[self.editButtonItem setAction:@selector(editAction:)]; 
[self.navigationItem setRightBarButtonItem: self.editButtonItem]; 

// .. your code 

} 

-(IBAction)editAction:(id)sender 
{ 
    UIBarButtonItem * button = ((UIBarButtonItem*)sender); 

    if (!self.tableView.editing) 
    { 
     [self.tableView setEditing:YES animated:YES]; 
     [button setTitle:@"Done"]; 
     // do your stuff... 
    } 
    else 
    { 
     [button setTitle:@"Edit"]; 
     [self.tableView setEditing:NO animated:YES]; 
     // do your stuff... 
    } 
} 

Nếu bạn có UIButton của riêng bạn và không sử dụng self.editButtonItem tiêu chuẩn sau đó sử dụng [yourButton addTarget: tự động: @selector (editAction :) forControlEvents: UIControlEventTouchUpInside]; Và xử lý nó dưới dạng UIButton * trong editAction: phương thức

Các vấn đề liên quan