2016-08-20 92 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) 
相关问题