2016-08-20 94 views
0

我目前已經有了一個應用程序,你可以在一個視圖中輸入一個東西,並且它出現在另一個視圖中。我應該簡單地通過將信息發送到數據庫然後在另一個視圖上檢索它或者是否有直接傳遞這些信息的方法來做到這一點?iOS從不同的視圖控制器傳遞信息swift

+1

@EricAya謝謝你的提示!我會確保這不會發生。 – tryingtolearn

回答

0

如果使用的是故事板,看看到塞格斯

+0

我目前正在以編程方式做所有事情。有另一種方法嗎? – tryingtolearn

0

從一個視圖控制器發送信息到另一個是塞格斯的最好方法。

您可以使用它像這樣:

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

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

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

而在你yourNextViewController類。從DestinationViewController回

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

設定值的主(前)的ViewController

實現一個協議,例如:

class yourNextViewControllerClass { 

    var value:Int! // or whatever 

你也可以以編程方式調用此創建一個名爲protocol.swift的文件。

protocol changeUserValueDelegate { 
     func changeUser(toValue:Bool) 
    } 

2.設置委託在你的第二個查看

class yourNextViewControllerClass { 

    var delegate:changeUserValueDelegate? 

設置委託負載(prepareForSegue)

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

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

4.附加功能到FirstViewController

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

5.呼叫從自己的SecondViewController此功能

 delegate?.changeUser(true) 

6.將委託你FirstViewController

class FirstViewController: UIViewController, ChangeUserValueDelegate { 
+0

感謝您的詳細解答。有沒有指向你可以在這裏發佈的教程的鏈接? – tryingtolearn

+0

這是我在另一個問題上的答案。但有很多教程:https://www.raywenderlich.com/113394/storyboards-tutorial-in-ios-9-part-2 – derdida

0

如果你是編程這樣做,那麼你可以給您的目標視圖控制器是故事板中的標識符,當您移動到Viewcontroller時,使用此ID獲取此視圖控制器entifier和屬性添加到第二個視圖控制器讓你寫

文本

例子:

  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) 

或者

 self.presentViewController(secondViewController, animated: true, completion: nil) 
相關問題