iOS segue zweimal ausgeführt

Ich habe einen table view mit verschiedenen Arten von table view cells in es. In einer der Zellen, es gibt zwei Schaltflächen, die Last eines view-controller, wenn Sie gedrückt werden. Ich benutze folgende Funktion behandeln Sie die-Taste drücken:

- (IBAction)leftButtonPressed:(id)sender
{
    //Getting the pressed button
    UIButton *button = (UIButton*)sender;
    //Getting the indexpath
    NSIndexPath *indPath = [NSIndexPath indexPathForRow:button.tag inSection:0];
    //Loading the proper data from my datasource
    NSArray *clickedEvent = [[[SOEventManager sharedEventManager] eventsArray] objectAtIndex:indPath.row];
    [[SOEventManager sharedEventManager] setSelectedEvent:clickedEvent[0]];
    //Everything working as it should up to this point
    //Performing seque...
    [self performSegueWithIdentifier:@"buttonSegue" sender:self];
}

Meine buttonSegue soll, schieben Sie eine neue view-controller. Irgendwie anstatt einmal, es zu sein scheint, drücken Sie zweimal, so bekomme ich die folgende Warnung:

2013-11-27 01:48:30.894 Self-Ordering App[2081:70b] nested push animation can result in corrupted navigation bar 
2013-11-27 01:48:31.570 Self-Ordering App[2081:70b] Finishing up a navigation transition in an unexpected state. Navigation Bar subview tree might get corrupted.

In meinem Fall führt es zu einem Absturz, denn es ist ein Ereignis, bei dem will ich die app, um sofort zu pop-view-controller, so dass es ein zurück zu meiner Tabelle anzeigen. Ich benutze ein alertview für diese und behandeln Sie das Ereignis mit den folgenden:

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    NSString *buttonTitle = [alertView buttonTitleAtIndex:buttonIndex];
    //...
    //Additional checking of button titles....
    else if ([buttonTitle isEqualToString:NSLocalizedString(@"Vissza", nil)])
    {
        [self.navigationController popViewControllerAnimated:YES];
    }
}

Könnte es mir interessant, zu bemerken, dass ich ein anderer übergang aus meinem "normalen" Tabellenansicht Zelle, und in diesem Fall nutze ich die prepareForSegue: Methode

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"detailSegue"])
    {
        NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
        SOEvent *selectedEvent = [[[SOEventManager sharedEventManager] eventsArray] objectAtIndex:indexPath.row];
        [[SOEventManager sharedEventManager] setSelectedEvent:selectedEvent];
    }
}

In diesem Fall der view-controller gedrängt perfekt, und poppte sofort, wenn dies erforderlich ist. Ich Teste das auf iOS7 und Xcode 5. Ich habe nicht ein problem festgestellt, wie dies vor, jede mögliche Hilfe würde sehr geschätzt werden.

  • sind Sie sicher, Sie haben verdrahtet die Aktionen korrekt im interface builder? vielleicht haben Sie WLAN-Falle für, sagen wir, beide berühren sich im inneren, und berühren Sie im inneren statt nur touch up inside. oder vielleicht haben Sie auch zugewiesen, der übergang von code-und wieder in den interface builder. haben Sie überprüft? es ist ein häufiger Fehler.
  • Oh verdammt.. Sie sind eigentlich Recht, vergebe ich meine Knöpfe auch in der table view datasource-Methoden.. Danke für deine Antwort!
Schreibe einen Kommentar