2016-08-20 5 views
0

Ich habe derzeit eine Anwendung, wo Sie eine Sache in eine Ansicht eingeben und es erscheint in einer anderen Ansicht. Soll ich das einfach tun, indem ich die Informationen an eine Datenbank sende und sie dann auf der anderen Ansicht abrufe oder gibt es eine Möglichkeit, diese Informationen direkt weiterzugeben?iOS Weitergabe von Informationen aus verschiedenen Viewcontrollern swift

+1

@EricAya Danke für den Tipp! Ich werde dafür sorgen, dass das nicht passiert. – tryingtolearn

Antwort

0

Wenn Sie Storyboard verwenden, haben Sie einen Blick in Segues

+0

Ich mache derzeit alles programmgesteuert. Gibt es eine andere Art und Weise? – tryingtolearn

0

Der beste Weg, um Informationen von einem Viewcontroller zu einem anderen segues sind zu senden.

Sie können es wie folgt verwenden:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 

    if(segue.identifier == "yourIdentifierInStoryboard") { 

     let yourNextViewController = (segue.destinationViewController as yourNextViewControllerClass) 
     yourNextViewController.value = yourValue 

Und in Ihrer yourNextViewController Klasse.

class yourNextViewControllerClass { 

    var value:Int! // or whatever 

Sie können dies fordern auch programmatisch:

self.performSegueWithIdentifier("yourIdentifierInStoryboard", sender: self) 

Set Werte von Ihrem DestinationViewController zurück zu Ihrem Primary (First) Viewcontroller

1. ein Protokoll implementieren, zum Beispiel Erstellen Sie eine Datei namens protocol.swift.

protocol changeUserValueDelegate { 
     func changeUser(toValue:Bool) 
    } 

2. stellen Sie den Delegierten auf dem zweiten Blick

class yourNextViewControllerClass { 

    var delegate:changeUserValueDelegate? 

3. die Delegierten auf Last (prepareForSegue)

if(segue.identifier == "yourIdentifierInStoryboard") { 

     var yourNextViewController = (segue.destinationViewController as yourNextViewControllerClass) 
     yourNextViewController.delegate = self 

4. Add-Funktion eingestellt zu FirstViewController

func changeUser(toValue:Bool) { 
     self.currentUserValue = toValue 
    } 

5. Aufruf dieser Funktion von Ihrem SecondViewController

 delegate?.changeUser(true) 

6. Stellen Sie den Delegierten in Ihrem FirstViewController

class FirstViewController: UIViewController, ChangeUserValueDelegate { 
+0

Danke für diese detaillierte Antwort.Gibt es einen Link zu einem Tutorial, das du hier posten kannst? – tryingtolearn

+0

Dies war eine Antwort von mir auf eine andere Frage. Aber es gibt viele Tutorials: https://www.raywenderlich.com/113394/storyboards-tutorial-in-ios-9-part-2 – derdida

0

wenn Sie es tun programatically dann können Sie geben Ihr Ziel-View-Controller eine Kennung im Storyboard und wenn Sie zum Viewcontroller wechseln, holen Sie sich diesen Viewcontroller mit dieser ID entifier und eine Eigenschaft mit dem zweiten View-Controller hinzufügen, um den Text zu bekommen Sie

Beispiel geschrieben haben:

  let storyBoard = UIStoryboard(name: "Main", bundle: NSBundle.mainBundle()) 
      let secondViewController = storyBoard.instantiateViewControllerWithIdentifier("secondViewControllerIdentifier") as! UserBasicInfoViewController 
      secondViewController.Text = self.textField.text 
      self.navigationController?.pushViewController(userProfile, animated: true) 

Oder

 self.presentViewController(secondViewController, animated: true, completion: nil) 
Verwandte Themen