我有两个控制器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