2015-06-18 44 views
1

我在ViewController中將值存儲在SimpleClass中,我正在使用Secondview類。但我無法從SecondClass中的SimpleClass獲取值。幫我 感謝不屬於swift的類屬性

Demo Project

+0

一些示例代碼將非常有幫助。 – liushuaikobe

+0

需要權限才能在Google雲端硬盤上打開代碼。 – Vakas

+0

更好的上傳到GitHub或在這裏郵政編碼 – derdida

回答

0

它不工作的原因是因爲在SecondClass要創建的SimpleClass一個新的實例。

你真正想要做的是將SimpleClass實例從ViewController傳遞到SecondClass。如果你想從視圖控制器的價值觀

import UIKit 

class ViewController: UIViewController { 

    var simObject:SimpleClass? 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     self.title = "First Class"; 

     simObject = SimpleClass() 
     simObject!.userName = "damu"; 
     simObject!.userPassword = "123"; 
     simObject!.address = "344r"; 

     print(simObject!.address) 
    } 

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
     // pass the simObject to secondClass 
     if let secondClass = segue.destinationViewController as? SecondClass { 
      secondClass.simpleClass = simObject 
     } 
    } 

} 

SeconClass.swift

import UIKit 

class SecondClass: UIViewController { 

    var simpleClass:SimpleClass? 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     self.title = "Second Class"; 

     if let passedSimpleClass = self.simpleClass { 
      println(passedSimpleClass.address) 
     } 
    } 

} 
0

:要做到這一點

一種方式是在「ViewController`

使用上ViewController.swiftprepareForSegue方法您的SecondView必須執行

覆蓋FUNC prepareForSegue(賽格瑞:UIStoryboardSegue?發件人: AnyObject)

你得到的temp.username是零顯示在日誌中,當你去Secondview正確的價值。這是因爲你正在創建一個SimpleClass的新實例,它的變量初始化爲零。