2014-05-25 38 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”,因为标签是零。所以文本属性不能改变。那是差别 –

相关问题