Ho 3 passaggi per 3 visualizzazioni differenti. 2 sono implementati senza problemi, è quando viene creato il terzo che si verificano i problemi.prepareForSegue chiamato prima di DoesSelectRowAtIndexPath solo quando viene aggiunto il terzo passaggio
ho il seguente metodo didSelectRowAtIndexPath:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
NSLog(@" ---------- did select row");
if(indexPath.section == 0){
if(indexPath.row == [self.data count]-1){
//prior to adding this, everything works
[self performSegueWithIdentifier:@"MoreComments" sender:self];
}else{
[self performSegueWithIdentifier:@"FriendView" sender:friend];
}
}else if(indexPath.section == 1){
if(indexPath.row == [self.data2 count]-1){
[self performSegueWithIdentifier:@"MorePosts" sender:self];
}else{
[self performSegueWithIdentifier:@"FriendView" sender:friend];
}
}
}
ho il seguente metodo prepareForSeque:
-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if([segue.identifier isEqualToString:@"MorePosts"]){
MorePostsViewController *mfamvc = segue.destinationViewController;
mfamvc.data = self.data;
}else if([segue.identifier isEqualToString:@"FriendView"]){
FriendViewController *fvc = segue.destinationViewController;
fvc.friend = friend;
}else if([segue.identifier isEqualToString:@"MoreComments"]){
MoreCommentsViewController *mcvc = segue.destinationViewController;
mcvc.data = self.data2;
}
}
Prima di controllo trascinare dalla mia cella per l'ultima vista posso vedere che il mio programma colpisce didselectrow e poi preparatevi a fare. Ciò rende perfetta la navigazione della vista.
Appena ho controllo di trascinamento dalla mia cella alla MoreCommentsViewController comincio a vedere l'errore:
nidificato animazione spinta può causare danneggiato barra di navigazione Finendo una transizione di navigazione in uno stato imprevisto. L'albero secondario della barra di navigazione potrebbe essere danneggiato.
Mi accorgo che ora anche preparareforseque viene chiamato due volte, con la preparazioneforseque che viene chiamata per prima, quindi viene eseguita una volta, quindi preparata nuovamente.
Cosa sto sbagliando per andare condizionatamente a queste diverse visioni?
Qualcosa è probabilmente sbagliato con i modi i segues sono collegati in su. Puoi descrivere cosa hai fatto in IB o postare un link ad un'immagine del tuo storyboard? Stai collegando più folletti direttamente da un prototipo di cella? Se è così, è ciò che è sbagliato. – rdelmar
sì, sto collegando più folletti da un prototipo di cella. Immagino che questo sia il problema – Atma