2017-02-08 7 views
-1

私は迅速なプログラミングには新しく、ここでは多くの記事を参照しましたが、私の問題を解決できませんでした。私はここでばかげている場合は謝罪します1つのビューコントローラーから別のビューコントローラーにデータを渡す3

私は1つのviewcontrollerから別のプログラムにデータを渡そうとしています。しかし、私はクラスBからクラスAに値を渡す場合でも、それは

クラス

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

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

クラスB

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

が、クラス種皮、viewlet意志でnilを語ります私が値を渡した後でさえもゼロになる。私はそれを間違っているのですか?それとも他の方法がありますか?ありがとうございました

+0

(それはスウィフト2であるが、あなたが理解することができますが:P)あなたはこのリンクを見ることができます - http://stackoverflow.com/questions/39285588/how-to-pass-data-from-child-親ビューのコントローラ - イン - スイフト/ 39288232#39288232 – Tuhin

+0

このプログラムのコンパイル方法は? var viewlet = [String]を変更する必要があります! varletへ:[文字列]! –

答えて

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) 
      } 
     } 
関連する問題