我有两个观点。主视图是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]];
}
非常感谢任何帮助。谢谢:))
答案 0 :(得分:0)
在这种情况下,您想要弹出AddItemViewController。当你从ViewController调到AddItemViewController时,我猜你做了推。这有效的是它在内存堆栈中添加了ViewIntroller的AddItemViewController。通过' segue-ing'再次从AddItemViewController到ViewController,您将添加另一个AddItemViewController的ViewController实例ONTOP。这就是为什么你认为你实际上正在丢失你的数据,你不是。您只看到错误的视图控制器。