2016-11-13 4 views
1

Ich bin schon eine Weile dabei und würde gerne einige mögliche Lösungen hören. Im Wesentlichen versuche ich, ein rechtes Menü/nav unter Verwendung SWRevealViewController einzubauen, aber wenn ich versuche, mich in der APP anzumelden und zu meinem Ausgangsbildschirm/zur angemeldeten Landung zu gehen, stürzt die APP ab. Die App stürzt nicht ab, wenn das Segment modal ist, usw. aber es stürzt weiterhin ab, während es auf den passenden Übergang für das Plugin gesetzt ist, das ich gerade benutze.Swift/Objective C - performTransitionOperation Crash

Hier ist die Ausgabe der Konsole, wenn die Anwendung abstürzt:

2016-11-12 22: 21: 04,861 Frei Markt [16811: 3.049.283] *** app aufgrund abgefangene Ausnahme abschließenden 'NSInvalidArgumentException', Grund: '- [Freely_Market.LoginViewController _performTransitionOperation: withViewController: animated:]: Unbekannter Selektor an Instanz gesendet 0x7fc71950ea30'

Für diejenigen, die sieht die Benutzeroberfläche der Anwendung wird sich fragen, was wie - hier:

User Interface Image

1 ist die Login-Schaltfläche, wo der Benutzer dann auf dem folgenden Bildschirm weitergeleitet wird, solange ihre Informationen übereinstimmen, was im System gespeichert ist.

2 ist die segue, sw_front

3 die in Bildschirm angemeldet ist

4 ist die segue sw_right

5 das Menü

ist

Die Segues richtig eingerichtet sind, und ich denke, ich bin auf dem richtigen Weg, wenn es darum geht herauszufinden, was genau das Problem hier ist ..

Hier ist, wo der Fehler ist, oder wo es ist Codierung von: \

- (void)perform 
{ 
    SWRevealControllerOperation operation = SWRevealControllerOperationNone; 

    NSString *identifier = self.identifier; 
    SWRevealViewController *rvc = self.sourceViewController; 
    UIViewController *dvc = self.destinationViewController; 

    if ([identifier isEqualToString:SWSegueFrontIdentifier]) 
     operation = SWRevealControllerOperationReplaceFrontController; 

    else if ([identifier isEqualToString:SWSegueRearIdentifier]) 
     operation = SWRevealControllerOperationReplaceRearController; 

    else if ([identifier isEqualToString:SWSegueRightIdentifier]) 
     operation = SWRevealControllerOperationReplaceRightController; 

    if (operation != SWRevealControllerOperationNone) 
     [rvc _performTransitionOperation:operation withViewController:dvc animated:YES]; 
} 

Also von dem, was ich sagen kann, denkt, dass die Anwendung, dass es diesen Selektor verwendet: _performtransitionOperation:withViewController:animated:]

Aber das ist natürlich nicht Swift, und ist Objective-C. Ich bin mir also nicht ganz sicher, wie ich meine Überleitung so betreiben kann, wie sie sollte.

Hier wird das Segment aufgerufen, nachdem die Anmeldeinformationen des Benutzers überprüft wurden.

Und das ist, wo ich feststecke, vielleicht ist es nur ein Problem mit Objective-C und Swift Konflikt? Andere haben dieses Add-In gut in Ordnung gebracht, ohne irgendwelche Probleme, aber ich habe nicht. Vielleicht liegt es daran, dass ich Benutzeranmeldeinformationen verifiziere und sie dann an diesen neuen Bildschirm übergebe, wo andere einfach am Basisbildschirm beginnen.

Jede Hilfe wird geschätzt.

Antwort

0

Problem wurde behoben.

Ich musste einen separaten View-Controller zwischen der Login-Bestätigung und den Instanzen, in denen SWRevealViewController aufgerufen wird, erstellen.

Wenn Sie in das Problem weiter auf dem Git-Repository für SWRevealViewController lesen möchten, können Sie dies hier tun: SWRevealViewController Issue #642

Bildansicht von dem, was ich spreche, ist hier zu finden: