2017-02-08 41 views
-1

我是新來的swift編程,也提到了很多帖子在這裏,但沒有找到解決我的問題。我很抱歉,如果我在這裏很蠢從一個viewcontroller傳遞數據到另一個包含零快速3

我想將數據從一個viewcontroller傳遞到另一個編程。但即使我從B類值傳遞給A級,它說,零

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會甚至在我通過價值之後也是零。我做錯了嗎?或者還有其他方法嗎?感謝您的幫助

+0

你可以看到這個鏈接(雖然這是在斯威夫特2,但你能明白:P) - http://stackoverflow.com/questions/39285588/how-to-pass-data-from-child- to-parent-view-controller-in-swift/39288232#39288232 – Tuhin

+0

這個程序是如何編譯的?你應該改變var viewlet = [String]!到var viewlet:[String]! –

回答

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) 
      } 
     } 
相關問題