将数据从一个视图控制器传递到另一个视图控制器在swift 3中包含nil

时间:2017-02-08 11:30:26

标签: ios swift

我是快速编程的新手,也在这里引用了很多帖子,但没有找到我问题的解决方案。如果我在这里愚蠢,我道歉

我正在尝试以编程方式将数据从一个viewcontroller传递到另一个viewcontroller。但即使我将B类的值传递给A类,也就是说nil

A类

class testB : UIViewController {
  func ready() {
    let vc = testA() 
    vc.viewlet = ["loadpage"]       
    show(vc, sender: self)
  }
}

B类

viewlet

但是在类testA中,即使我传递了值,try { $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); // set the PDO error mode to exception $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql = "INSERT INTO MyGuests (firstname, lastname, email) VALUES ('John', 'Doe', 'john@example.com')"; // use exec() because no results are returned $conn->exec($sql); echo "New record created successfully"; } catch(PDOException $e) { echo $sql . "<br>" . $e->getMessage(); } $conn = null; ?> 也将为零。我做错了吗?还是有其他方法吗?感谢您的帮助

1 个答案:

答案 0 :(得分:0)

每当您执行TestA()或TestB()时,您都会创建它的新副本。 这应该是你想要做的事情。

   class testA : UIViewController {
          let objectb = testB()
          var viewlet = [String]()

          override func viewDidLoad() {
            super.viewDidLoad()
               if viewlet == nil {
               objectb.vc = self
               objectb.ready()
              } else {
                let sel : Selector = NSSelectorFromString(viewlet[0])
                self.perform(sel)
              }
          }
       }

  class testB : UIViewController {
     let vc : testA?
        func ready() {
            vc.viewlet = ["loadpage"]       
            show(vc, sender: self)
          }
        }