2016-10-05 3 views
-2

Ich würde gerne einen Test von 20 Fragen in Swift implementieren, der gleiche viewcontroller sollte jedes Mal wiederholt werden, die nächste Taste gedrückt wird, bis die letzte Frage, aber dies schafft eine Warteschlange von Viewcontrollern sollte dies nicht passieren. Ich las und das NSCopying-Protokoll konnte mir helfen, aber ich kann nicht vollständig verstehen, auf welche Weise. Jemand könnte mir erklären oder geben Sie ein Beispiel für die richtige Art der Verwendung von NSCopying-Protokoll zu diesem FallNSCopying Protokoll Swift

+1

Sie wollen nicht 'NSCopying' für diesen Einsatz. Wenn Sie nicht für jede Frage einen neuen View-Controller hinzufügen möchten, ändern Sie einfach die Ansicht des View-Controllers der aktuellen Frage, um die nächste Frage anzuzeigen. – dan

+0

Was hat das 'NSCopying'-Protokoll damit zu tun, zu viele View-Controller zu schieben? – rmaddy

Antwort

0

In iOS wird jeder "Bildschirm" normalerweise durch einen einzelnen ViewController dargestellt, der seine Ansicht anpassen und die Interaktion mit dem Benutzer handhaben kann.

NSCopying wird verwendet, um Kopien von Objekten zu machen, aber es ist wahrscheinlich nicht das, was Sie brauchen hier, da es die gleiche Steuerung sein sollte, alle Fragen der Handhabung

In Ihrem Fall sollten Sie uns ein QuestionsViewController haben wir sagen, mit wahrscheinlich ein „next Taste".

class QuestionsViewController: UIViewController {} 

Dann verknüpfen Sie die touchUpInside Aktion Ihrer Taste auf eine IBAction Methode (wenn Sie Interface Builder verwenden für Ihre Ansicht Gebäude) in QuestionsViewController und die Ansicht aktualisieren, um die Frage Etikett zu ändern und das Antwortfeld zurückgesetzt (s

)
@IBAction func nextQuestion(sender: UIButton) { 
    // Update the view... 
} 

Alternativ könnten Sie eine UIpageViewController/UITableView/UIcollectionView verwenden, wo jede Frage

andere Ansicht/Zelle

Sie können einen Blick haben würde bei Thesen Tutorials:

Handling user action tutorial

Quizz video tutorial

PageViewController tutorial

+0

Vielen Dank für die Antwort, das war, was ich suchte – SheyVC

+0

@SheyVC WENN dies Ihr Problem löst, dann sollten Sie die Antwort akzeptieren. – rmaddy

0

Anstatt Erstellen von verschiedenen Viewcontroller für jede Frage, können Sie einzelne Viewcontroller verwenden und beim nächsten Wechsel der Frage.Sie können UIView Animation für von einer Frage zur anderen wechseln.