Вам просто нужно установить свойство editing
для UITableView, в вашем UITableViewController реализовать что-то вроде:
- (void) editingButtonPressed:(id)sender {
if([self isEditing]) {
[sender setText:@"Edit" forState:UIControlStateNormal];
[self setEditing:NO animated:YES];
} else {
[sender setText:@"Done" forState:UIControlStateNormal];
[self setEditing:YES animated:YES];
}
}
, подключить это к кнопке или изображению и заменить setText
на setImage
если у вас нет текста.
Вот мой init
метод для UITableViewController
с использованием пользовательского UIToolbar
, который добавляет две кнопки на панель навигации вместо правой кнопки панели навигации.
- (id) init {
[super initWithStyle:UITableViewStyleGrouped];
UIBarButtonItem *email = [[[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"Email.png"] style:UIBarButtonItemStyleBordered target:self action:@selector(composeEmail:)] autorelease];
UIBarButtonItem *bookmark = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(addBookmark:)] autorelease];
[bookmark setStyle:UIBarButtonItemStyleBordered];
CustomToolbar *buttonToolbar = [[CustomToolbar alloc] initWithFrame:CGRectMake(0, 0, 93, 45)];
[buttonToolbar setBarStyle:UIBarStyleBlackTranslucent];
[buttonToolbar setItems:[NSArray arrayWithObjects:email, bookmark, nil] animated:NO];
[[self navigationItem] setTitle:@"Table with Custom Toolbar"];
[[self navigationItem] setRightBarButtonItem:[[[UIBarButtonItem alloc] initWithCustomView:buttonToolbar] autorelease]];
[buttonToolbar release];
return self;
}
При создании кнопок я использую action:@selector(customMethodName)
при создании кнопок, чтобы связать свои методы с действиями кнопок в этом случае composeEmail
и addBookmark
, которые загружают новые представления для этих задач.