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;
}
4 Réponses :
corrigé! A dû hériter d'UitablesViefController non uiviewontroller. P>
Vous n'êtes pas héritant correctement. P>
Vous n'allez rien obtenir de l'UIViewController, il ne contient que les vues. Je vous suggère d'essayer utablevolcontroller. P>
Rien à voir avec héritage s'il a un objet de tableView et l'UIViewController est son délégué.
où vous écrivez l'autre méthode de méthode d'édition d'une vue utable
Comme ceci
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];
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.
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.