9
votes

Utableview mode édition ne fonctionne pas

J'essaie d'activer le mode d'édition pour un utableview. Lorsque je clique sur le bouton "Modifier", il passe "Terminé" mais les signes rouges rouges ronds ne figurent pas dans la table. Je pose ci-dessous certaines des méthodes de la classe. Le délégué de l'application a créé une barre d'onglets et les vues à l'intérieur des onglets ont des contrôleurs de navigation. Tout est fait en code, peu de choses se fait avec des fichiers NIB. Qu'est-ce qui ne va pas?

- (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;  
}


1 commentaires

Hey OLSI S'il vous plaît éditez votre question en formatage correctement.Le très difficile à comprendre le code. Il n'y a pas d'espace entre la fin et le démarrage des méthodes.


4 Réponses :


1
votes

corrigé! A dû hériter d'UitablesViefController non uiviewontroller.


0 commentaires

3
votes

Vous n'êtes pas héritant correctement.

Vous n'allez rien obtenir de l'UIViewController, il ne contient que les vues. Je vous suggère d'essayer utablevolcontroller.


1 commentaires

Rien à voir avec héritage s'il a un objet de tableView et l'UIViewController est son délégué.



2
votes

où vous écrivez l'autre méthode de méthode d'édition d'une vue utable Comme ceci xxx


0 commentaires

20
votes

L'héritage n'a aucun impact sur celui-ci.

Vous pouvez utiliser cette méthode pour laquelle il fonctionne lorsque vous affectez la droitebutton de la navigationController à celui-ci. P>

[tableView setEditing:FALSE];


2 commentaires

Je suis d'accord, vote pour ci-dessus, j'utilise habituel UIViewController et cela fonctionne bien - au lieu de cela, vous devez: 1. Faites de votre contrôleur un délégué d'UitailViewelegate, UitailViewAsource, 2. Mise en œuvre - (vide) Enregistrement: (BOOL) Édition animée: (BOOL) ) Animated, 3. Ajouter programmatimatiquement Bouton d'édition - Self.navigentItem.rightbarbuttonitem = Self.editTonnetem


UitailViewController est trop limitée parfois c'est pourquoi nous utilisons UIViewController. Bonjour! Merci.