2015-10-05 32 views
0

我試圖瞭解此錯誤之前。我希望有些東西還沒有初始化,但我無法弄清楚如何解決這個問題。實例成員''不能用於類型''prepareForSegue

這是錯誤的prepareForSegue

實例成員 '選擇' 不能在類型lastVC使用

我有以下應用:

Picture

的想法是存儲在每個視圖中選擇的選項,並通過發送信息到lastVCprepareForSegue。我有這個代碼,但它不能正常工作。

類VC1:

UIViewController { 
    var choice : MyChoices? 

    @IBOutlet weak var nextOutlet: UIButton! 
    @IBOutlet weak var colourLabel: UILabel! 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 
     nextOutlet.hidden = true 
    } 

    @IBAction func redButton(sender: AnyObject) { 
     nextOutlet.hidden = false 
     colourLabel.text = "Red colour selected" 
     choice.color = "Red" 
    } 

    @IBAction func blueButton(sender: AnyObject) { 
     nextOutlet.hidden = false 
     colourLabel.text = "Blue colour selected" 
     choice.color = "Blue" 
    } 

    @IBAction func greenButton(sender: AnyObject) { 
     nextOutlet.hidden = false 
     colourLabel.text = "Green colour selected" 
     choice.color = "Green" 
    } 

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
     let lastVC = segue.destinationViewController as! lastVC 
     lastVC.choice = self.choice 
    } 
} 

VC2和VC3是相同的VC1(同一網點和按鈕)

lastVC { 
    var choice : MyChoices? 

    @IBOutlet weak var colourLabel: UILabel! 
    @IBOutlet weak var styleLabel: UILabel! 
    @IBOutlet weak var sizeLabel: UILabel! 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 
    } 
} 

而最後類存儲串

import UIKit 

class MyChoices { 
    var colour : String? 
    var style : String? 
    var size : String? 
} 
+1

請突出正常。 –

+0

什麼是'lastVC'? – Fogmeister

+0

另外,請複製並刪除您收到的全部錯誤消息。 – Fogmeister

回答

1

在施放lastVC之前,您應該在prepareForSegue方法中檢查您的segue標識符。我認爲你的prepareForSegue方法會試圖將你所有的VC都轉換成lastVC,這樣每次都會崩潰。嘗試檢查你的segue標識符。

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    if segue.identifier == "YourSegueIdentifier" { 
     let lastVC = segue.destinationViewController as! lastVC 
     lastVC.choice = self.choice 
    } 
} 
+0

感謝mergenchik !!!!這個問題解決了。現在沒有任何內容出現在最後一個VC中(標籤是空的)。這是我的按鈕的代碼: redButton: nextOutlet.hidden =假 colourLabel.text = 「紅色選擇」 選擇.colour = 「紅」 – FactorJose

+0

和viewDidLoad中在lastVC看起來是這樣的:? colourLabel.text = choice?.colour styleLabel.text = choice?.style sizeLabel.text = choice?.style – FactorJose

0

嘗試初始化myChoices的新實例,並試圖將此傳遞到lastVC.choice

和:你應該初始化添加方便您myChoices類或做一個結構,而不是

+0

感謝您的時間兄弟 – FactorJose

相關問題