从segue返回后,ViewController的私有数据设置为nil

时间:2014-11-16 16:07:51

标签: ios objective-c segue viewcontroller

我有两个观点。主视图是ViewController,下一个是AddItemViewController。 ViewController有一个tableview,列出了你去AddItemViewController时添加的项目。 AddItemViewController上有一个按钮,可以回到ViewController。问题是,在返回ViewController期望添加一个项目时,ViewController的私有数据突然设置为nil。从segue返回后,我丢失了数据并有机会与我的对象进行交互。

以下是设置为nil的数据

@property (strong, nonatomic) costEstimator *myCost;
@property NSString *testString;

我做错了什么?

这是我在AddItemViewController中的prepareforsegue代码

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Get the new view controller using [segue destinationViewController].
ViewController *vC = [segue destinationViewController];
[vC addSomething:_selectedItem withQuantity:[_quantBox.text doubleValue]];
}

非常感谢任何帮助。谢谢:))

1 个答案:

答案 0 :(得分:0)

在这种情况下,您想要弹出AddItemViewController。当你从ViewController调到AddItemViewController时,我猜你做了推。这有效的是它在内存堆栈中添加了ViewIntroller的AddItemViewController。通过' segue-ing'再次从AddItemViewController到ViewController,您将添加另一个AddItemViewController的ViewController实例ONTOP。这就是为什么你认为你实际上正在丢失你的数据,你不是。您只看到错误的视图控制器。