Fehler: Das Fenster von UIView ist nicht gleich dem Fenster einer anderen Ansicht

8

Ich bin ein Anfänger, der schnell lernt. Erster Beitrag hier.

Zusätzliche Informationen, aber vielleicht unnötig
In dieser App, die ich erstellt habe, wählt der Benutzer ein Bild auf dem Haupt-View-Controller und übergibt es an den zweiten View-Controller. Dort wird das Bild in Stücke zerlegt und diese Teile werden in separaten UIImageViews platziert. Ziel ist es, sie in die richtige Reihenfolge zu bringen, indem Bilder ausgetauscht werden.

Alles funktioniert gut und es läuft im Simulator gut. Ich versuche jedoch, grundlegende Animationen hinzuzufügen (die UIImageViews verschieben), aber sie führen nicht aus. Ich weiß, dass ich die korrekte Syntax für die Animation habe, da ich den Code in einem anderen Projekt getestet habe.

Hauptfrage
Wenn ich von meinem Hauptansicht-Controller zum zweiten Ansicht-Controller navigiere, wird sofort ein Fehler in der Konsole angezeigt. Hier ist, was es sagt:

2014-09-04 17: 51: 33.489 TileGame [79951: 95150647] UIView: 0x7f7fe9c84600; Rahmen = (0 0; 320 568); Autoresize = W + H; layer = CALayer: 0x7f7fe9c848d0 & gt; Das Fenster ist nicht gleich TileGame.GameScreen: 0x7f7fe9dc6bc0 & gt; das Fenster der Ansicht!

Ich kann nicht herausfinden, was es bedeutet, aber es scheint keine Probleme zu verursachen, außer die Animation zu behindern. Irgendwelche Ideen ??

Sieht aus, als hätte diese Person eine ähnliche Fehlermeldung, aber vielleicht komplizierter als meine App. Modale Viewcontroller-Benutzeroberfläche reagiert nicht nach presentViewController: animated: completion:

Hier ist mein ganzes Projekt auf GitHub: Ссылка

Danke

    
paka 05.09.2014, 01:34
quelle

1 Antwort

27

Sie scheinen einige grundlegende Missverständnisse von iOS-Programmierparadigmen zu haben. Sie haben an Ihre Schaltflächen angehängte Segmente, aber Sie rufen auch performSegue im Code auf. Wenn Sie ein Segment an ein Steuerelement angehängt haben, benötigen Sie keinen Code (und sollten keinen haben), um die Ausführung des Segments zu veranlassen. Sie sollten auch nicht zu einem vorherigen View-Controller mit einem anderen Segment als einem Abwicklungssegment zurückkehren. Du gehst nicht wirklich zurück, du erstellst eine neue Instanz des Controllers, von dem du denkst, dass du zurückgehst. Dies führt zu einem Aufbau von Controllern (da keine freigegeben werden), bis der Speicherplatz in Ihrer App erschöpft ist.

Sie sollten also die Funktion letsPlayButton: von MainScreen löschen und sie auch im Storyboard loswerden (das mit dieser Schaltfläche verknüpfte Segment ist alles, was Sie brauchen).

Löschen Sie den Übergang, den Sie von GameScreen zurück zum MainScreen haben, und ändern Sie den Code in backToMainScreen in diesen,

%Vor%     
rdelmar 05.09.2014, 04:58
quelle

Tags und Links