2014-05-25 42 views
0

我有兩個控制器A和BSegue不能通過使用Outlet屬性從1控制器傳遞給另一個控制器?

在B中,我有一個UISwitch IBOutlet。

當我使用Segue公司從A

switch.on = YES不起作用。

如果我宣佈B中另一個屬性,說switchvalue,

@property (strong, nonatomic) NSNumber* switchvalue; 

我可以通過價值switchvalue。

任何人有一些線索?我無法直接在控件上設置屬性,這很單調乏味。

+0

IBOutlets未在執行SEGUE時間設置。所以,如果你想傳遞一些信息,你需要使用一個臨時屬性,然後設置在viewDidLoad中或viewWillAppear中方法的出口。 –

+0

http://stackoverflow.com/a/23403979/294884 – Fattie

回答

1

這是不可能的設置一個IBOutlet的值在prepareForSegue:因爲調用此方法時尚未創建所述出口。如果你調試你的代碼,你會看到當調用prepareForSegue時UISwitch的值爲零。

作爲替代設置一個NSNumber屬性,你可以嘗試this

+0

我添加了普通財產;當我調試時,我也看到常規屬性也是零;但是該值將傳遞給該普通屬性。 –

+0

該字符串爲零,因爲它沒有值。你可以設置一個值。在IBOutlet的情況下,您並未嘗試爲出口設置值,而是爲其設置屬性值。例如,你可以做controller.string = @「a」但不是controller.label.text = @「a」,因爲標籤是零。所以文本屬性不能改變。那是差別 –

相關問題