传递给prepareForSegue的数据为零

时间:2014-04-22 10:37:18

标签: ios objective-c segue

我试图让IngredientViewController更新属于通过segue(FridgeViewController

调用它的控制器的数组

IngredientViewController中,无论我尝试什么,iceManager都是零

代码:

FridgeViewController:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    // Get the new view controller using [segue destinationViewController].
    // Pass the selected object to the new view controller.
    IngredientViewController *controller = (IngredientViewController *)segue.destinationViewController;
    [controller setFridgeManager:fridgeManager];
}

IngredientViewController:

@property (strong, nonatomic) FridgeDataManager *fridgeManager;

并且在viewDidLoad fridgeManager中为nil(以及任何其他粗略方法)

2 个答案:

答案 0 :(得分:1)

IngredientViewController.m

中合成此 fridgeManager 属性
@synthesize fridgeManager; 

答案 1 :(得分:0)

在较新版本的Xcode中,您不需要合成属性,也不需要创建实例变量。如果你不做任何一个,那么Xcode会创建一个带有" _"的实例变量。匹配您的财产的前缀。 (我相信这是一个改变,是Objective C 2.0的一部分。)

所以

@property (nonatomic, strong) NSString *foo;

给你一个`_foo。

的实例变量

你可以像以下一样使用它:

[controller setFridgeManager: _foo];

如果你有一个属性fridgeManager和一个实例变量fridgeManager,它们可能是不同的实体,所以设置

fridgeManager = x;

会更改与设置

不同的实例变量
self.fridgeManager = x;