jueves, 14 de enero de 2016

iOS: Editable UITableView

@interface ViewController ()

@property(nonatomic, retain) UIBarButtonItem* addButton;

@end

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    
    self.navigationItem.rightBarButtonItem = self.editButtonItem;
    
    _addButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(addItem:)];
    self.navigationItem.leftBarButtonItem = _addButton;

}

#pragma mark - UITableViewDelegate

- (void)setEditing:(BOOL)editing animated:(BOOL)animated
{
    [super setEditing:editing animated:animated];
    
    [self.tableview setEditing:editing animated:YES];
    
    if (editing) {
        _addButton.enabled = NO;
    } else {
        _addButton.enabled = YES;
    }
}

- (UITableViewCellEditingStyle)tableView:(UITableView*)tableView editingStyleForRowAtIndexPath:(NSIndexPath*)indexPath
{
//    if (indexPath.row == _list.count - 1) {
//        return UITableViewCellEditingStyleInsert;
//    } else {
//        return UITableViewCellEditingStyleDelete;
//    }
    return UITableViewCellEditingStyleDelete;
}

- (void)addItem:(id)sender
{
    [self performSegueWithIdentifier:@"AddViewController" sender:self]; // Presents AddViewController modally
}

#pragma mark - Unwind segues
- (IBAction)dimiss:(UIStoryboardSegue*)segue
{
    
}

- (IBAction)doAddItem:(UIStoryboardSegue*)segue
{
    AddViewController* addViewController = segue.sourceViewController;
    NSString* provider = addViewController.provider.text;
    NSString* account = addViewController.account.text;
    NSString* password = addViewController.password.text;
    
    KeychainItemWrapper* item = [[KeychainItemWrapper alloc] initWithAccount:account service:provider accessGroup:nil];
    [item setObject:password forKey:@"v_Data"];
    
    self.list = [self getItemsFromKeychain];
    
    [self.tableview reloadData];
}

No hay comentarios:

Publicar un comentario