我有兩個控制器A和BSegue不能通過使用Outlet屬性從1控制器傳遞給另一個控制器?
在B中,我有一個UISwitch IBOutlet。
當我使用Segue公司從A,
switch.on = YES
不起作用。
如果我宣佈B中另一個屬性,說switchvalue,
@property (strong, nonatomic) NSNumber* switchvalue;
我可以通過價值switchvalue。
任何人有一些線索?我無法直接在控件上設置屬性,這很單調乏味。
我有兩個控制器A和BSegue不能通過使用Outlet屬性從1控制器傳遞給另一個控制器?
在B中,我有一個UISwitch IBOutlet。
當我使用Segue公司從A,
switch.on = YES
不起作用。
如果我宣佈B中另一個屬性,說switchvalue,
@property (strong, nonatomic) NSNumber* switchvalue;
我可以通過價值switchvalue。
任何人有一些線索?我無法直接在控件上設置屬性,這很單調乏味。
這是不可能的設置一個IBOutlet的值在prepareForSegue
:因爲調用此方法時尚未創建所述出口。如果你調試你的代碼,你會看到當調用prepareForSegue
時UISwitch的值爲零。
作爲替代設置一個NSNumber屬性,你可以嘗試this
我添加了普通財產;當我調試時,我也看到常規屬性也是零;但是該值將傳遞給該普通屬性。 –
該字符串爲零,因爲它沒有值。你可以設置一個值。在IBOutlet的情況下,您並未嘗試爲出口設置值,而是爲其設置屬性值。例如,你可以做controller.string = @「a」但不是controller.label.text = @「a」,因爲標籤是零。所以文本屬性不能改變。那是差別 –
IBOutlets未在執行SEGUE時間設置。所以,如果你想傳遞一些信息,你需要使用一個臨時屬性,然後設置在viewDidLoad中或viewWillAppear中方法的出口。 –
http://stackoverflow.com/a/23403979/294884 – Fattie