I'm trying to activate the edit mode for a UITableView. When I click the "Edit" button, it changes to "Done" but the round red minus signs dont show up in the table. I'm posting below some of the methods of the class. The app delegate created a Tab Bar and the views inside the tabs have navigation controllers. all is done in code, little is done with nib files. What's wrong?
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [ikub.subscriptions count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
int i = [indexPath row];
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"cell"];
}
Subscriptions *s = [ikub.subscriptions objectAtIndex:i];
cell.textLabel.text = [s title];
cell.detailTextLabel.text = [NSString stringWithFormat:@"%@ artikuj te rinj, %@ artikujt te lexuar", [s new], [s read]];
if (deleteActive) {
cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
} else {
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
}
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
Subscriptions *s = [ikub.subscriptions objectAtIndex:[indexPath row]];
NSString *address = [[NSString alloc] init];
NSString *type = [NSString stringWithString:[s type]];
if ([type isEqualToString:@"Category"]) {
address = [NSString stringWithFormat:@"http://www.ikub.al/Rss.aspx?node=9e26cdb8-dba6-4504-8bb6-29f0753be179~%@", [s code]];
} else if ([type isEqualToString:@"Tag"]) {
address = [NSString stringWithFormat:@"http://www.ikub.al/Rss.aspx?tag=%@", [s code]];
}
address = [address stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding];
SubscriptionStories *ss = [[SubscriptionStories alloc] init];
ss.address = address;
ss.title = [s title];
[self.navigationController pushViewController:ss animated:YES];
[ss release];
}
- (void)viewWillAppear:(BOOL)animated {
[subscriptionsTable reloadData];
}
- (void)viewDidLoad {
refreshButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemRefresh target:self action:nil];
self.navigationItem.leftBarButtonItem = refreshButton;
[refreshButton release];
self.navigationItem.rightBarButtonItem = self.editButtonItem;
[super viewDidLoad];
}
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
return YES;
}
The inheritance don't have any impact on it.
You can use this method it works when you assign the rightbutton of the navigationController to it.
- (void)setEditing:(BOOL)editing animated:(BOOL)animated {
[super setEditing:editing animated:animated];
[tableView setEditing:editing animated:YES];
}
Or you can write a method which basically toggles the state of the UITableView like
[tableView setEditing:TRUE];
and when the button has become done then toggle it to
[tableView setEditing:FALSE];
You aren't inheriting correctly.
You're not going to get anything out of the UIViewController, it only contains the views. I suggest you try UITableViewController.
Where you write the other method of uitable view editing method Like this
-(void)tableView:(UITableView*)tableView willBeginEditingRowAtIndexPath:(NSIndexPath *)indexPath
{
}
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
return UITableViewCellEditingStyleDelete;
}
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
// If row is deleted, remove it from the list.
if (editingStyle == UITableViewCellEditingStyleDelete)
{
rowNumber = indexPath.row;
UIActionSheet *registerActionSheet = [[UIActionSheet alloc] initWithTitle:@"Sure You Want To Delete?"delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:nil otherButtonTitles:@"Yes", nil];
registerActionSheet.actionSheetStyle = UIActionSheetStyleBlackOpaque;
[registerActionSheet showInView:self.view];
[registerActionSheet release];
// delete your data item here
// Animate the deletion from the table.
//[self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With