使用presentViewController进行内存构建

时间:2014-05-20 21:07:09

标签: objective-c ios7 memory-leaks presentviewcontroller

我有一个按钮单击处理程序,用于保存对象,然后显示另一个控制器。我的问题是,每次点击,分配的内存都会增加。

  if (success) {
      ALRollsViewController *rollsController = [[UIStoryboard storyboardWithName:@"Entry" bundle:nil]instantiateViewControllerWithIdentifier:@"RollsController"];
      rollsController.camera= selectedCamera;
      [self presentViewController:rollsController
                         animated:YES
                       completion:nil];
  }

如果我使用dismissViewControllerAnimated而不是presentViewController:rollsController则没有累积。我是否需要以某种方式释放实例化的控制器?

1 个答案:

答案 0 :(得分:0)

你期待什么? 每次单击都会立即显示UIStoryboard的新实例。这里的命名约定是,以对象名称开头的方法(没有前缀的名称)返回新创建的对象实例。

查看并与NSArray arrayWith...NSString stringWith...

进行比较

另外,每次要呈现时都需要一个视图控制器的实例。 两个实例都保留,直到视图控制器被解除。 (我不是100%肯定UIStoryboard实例要保持这么久,但是新呈现的视图控制器会占用你的堆和你的堆栈。)