Video: P2PCamLive + upCam IP Kamera -- App Einrichtung auf Android 2024
Die meiste Zeit kann der Benutzer steuern, was in iOS-Apps passiert. Sie stellen die Schaltflächen und andere Oberflächenelemente bereit, aber der Benutzer wählt aus, was zu tun ist und welche Elemente der Benutzeroberfläche zu tippen sind. Modale Ansichten unterbrechen diese Benutzersteuerung. Sie werden auf dem Bildschirm angezeigt, und obwohl der Benutzer darin tippen kann, bleiben sie vorne und in der Mitte, bis der Benutzer sie entlässt.
Sie werden verwendet, wenn Sie möchten, dass der Nutzer etwas unternimmt oder ein Problem löst, bevor Sie den Rest der App weiter nutzen. Das Gerät ist nicht gesperrt, da der Benutzer die Startseite-Schaltfläche verwenden kann, um zu einer anderen App zu wechseln. In Bezug auf Ihre App ist das Gerät jedoch so lange gesperrt, bis die modale Ansicht geschlossen wird.
Die häufigste Methode zum Verwalten von Modalansichten besteht im Erstellen eines Objective-C -Protokolls , das vom Controller übernommen wird, der die Modalansicht anzeigt. Wenn der Benutzer eine Aktion oder Abbrechen ausgewählt hat, sendet die Ansicht Modal eine Nachricht an die Delegat-Methode des präsentierenden Controllers. Der anfordernde Controller weist dann den Modal-Controller zurück.
Die Verwendung dieses Ansatzes bedeutet, dass der präsentierende Controller, bevor er den Modal-Controller entlässt, alle benötigten Daten von ihm erhält. Das ist das Muster, das Sie hier implementieren werden.
Sie beginnen mit der Implementierung der Modal-Ansicht, indem Sie das Protokoll und einige andere Eigenschaften deklarieren, die Sie benötigen, sowie die Protokolle, die der DestinationController übernehmen muss.
Fügen Sie den fettgedruckten Code in Listing 20-1 zu DestinationController hinzu, um die ersten Schritte zu starten. h.
#import @protocol DestinationControllerDelegate ; @interface DestinationController: UIViewController @property (schwach, nicht atomar) IBOutlet UITableView * destinationTableView; @property (stark, nichtatomar) id delegieren; @property (nichtatomar, schreibgeschützt) NSUInteger selectedDestination; - (IBAction) cancel: (id) Absender; -d @protocol DestinationControllerDelegate @required - (void) destinationController: (DestinationController *) Steuerung didFinishWithSave: (BOOL) speichern; -d
Die Objective-C-Sprache bietet eine Möglichkeit, eine Liste von Methoden (einschließlich deklarierter Eigenschaften) als Protokoll formal zu deklarieren. Sie haben in diesem Buch umfangreiche Framework-Protokolle verwendet und definieren jetzt Ihr eigenes Protokoll.
Sie deklarieren formale Protokolle mit der @ protocol-Direktive. Sie haben ein DestinationControllerDelegate-Protokoll mit einer Methode namens destinationController: didFinishWithSave: deklariert, die erforderlich ist. Erforderlich ist der Standardwert. Wenn Sie optionale Methoden deklarieren möchten, verwenden Sie das Schlüsselwort @optional, und alle auf dieses Schlüsselwort folgenden Methoden wären optional.Betrachten Sie beispielsweise Folgendes:
@protocol SimpleDelegate @optional - (void) doNothing; -d
Sie können sowohl @required- als auch @optional-Methoden in einem Protokoll verwenden. Es ist üblich, sie zusammenzufassen, aber Sie können sie auch durchsetzen, wenn Sie möchten.
Wenn weder @required noch @optional angegeben ist, wird @required angenommen. Es ist jedoch besser, genau zu bestimmen, was erforderlich ist und was optional ist. Die Anweisung @Control DestinationControllerDelegate: (am Anfang) teilt dem Compiler mit, dass ein Protokoll unterwegs ist. Wie die @ class-Anweisung sagt es: "Vertrau mir, du wirst das Protokoll finden. "Sie brauchen das hier nur, weil Sie Folgendes hinzugefügt haben:
@property (strong, nonatomic) id delegate;
Diese Anweisung teilt dem Compiler mit, dass er überprüfen soll, was auch immer ihm zugewiesen wird, um sicherzustellen, dass er das DestinationControllerDelegate-Protokoll implementiert.
Sie haben auch die Eigenschaft selectedDestination hinzugefügt, die Sie im ViewController verwenden werden, um zu ermitteln, welches Ziel der Benutzer ausgewählt hat. Beachten Sie, dass Sie es schreibgeschützt gemacht haben, weil es keinen Grund für ein anderes Objekt gibt, es zu setzen.
Sie haben außerdem zwei Protokolle aus dem Cocoa Touch-Framework UITableViewDelegate und UITableViewDataSource übernommen, mit denen Sie die Tabellenansicht verwalten.
Als Nächstes müssen Sie die DestinationController-Implementierung mit dem fettgedruckten Code für einige Header-Dateien aktualisieren, die Sie später verwenden müssen.
#import "DestinationController. H" #import "DetailViewController. H" #import "AppDelegate. H" @interface DestinationController () -d @implementierung DestinationController
Jetzt haben Sie In der Installation können Sie sehen, was im DestinationController vor sich geht.