我试图让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(以及任何其他粗略方法)
答案 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;