【发布时间】:2014-04-18 22:44:26
【问题描述】:
我使用以下代码在视图控制器之间切换..(工作正常)顺便说一下,我也有很多视图控制器,我不只是在 2 之间来回切换
NSString * storyboardName = @"Main";
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:storyboardName bundle: nil];
MyTableViewVC *detailView = (MyTableViewVC *)[storyboard instantiateViewControllerWithIdentifier:@"MyTableViewVC"];
//pass data through to VC
[self presentViewController:detailView animated:NO completion:nil];
当我在视图控制器之间转换时,我看到内存使用量在攀升
所以我做了一些研究并意识到我并没有解雇以前的视图控制器。我在调用presentViewcontroller: 之前使用了以下代码[self dismissViewControllerAnimated:NO completion:nil];(之后我也尝试过使用它),但它不起作用。如果我在没有发生任何事情后使用它.. 在收到以下警告之前使用它
线程 1:EXC_BAD_ACCESS(code=1.. blah blah 如果您需要其余部分,请告诉我
我也尝试过做这样的事情..
[detailView presentViewController:detailView animated:NO completion:nil];
[self dismissViewControllerAnimated:NO completion:nil];
我做错了什么?
【问题讨论】:
-
您是否在情节提要的 MyTableViewVC 中添加了标识符?还是您当前的视图控制器包括 uinavigationcontroller ?
-
是的,就像我说的这段代码工作正常。我只是在关闭视图控制器时遇到问题,这段代码是从中调用的
-
记住如果你删除了旧的 VC,当你删除这些时,你将无法转到以前的 VC...跨度>
-
@FahimParkar 所以我应该只关心释放堆栈中最高的视图控制器吗?
-
@FahimParkar 我做了.. 我的问题中的第一块代码NSString * storyboardName = @"Main"; UIStoryboard *storyboard = [UIStoryboard storyboardWithName:storyboardName bundle: nil]; MyTableViewVC *detailView = (MyTableViewVC *)[storyboard instantiateViewControllerWithIdentifier:@"MyTableViewVC"]; //将数据传递给VC [self presentViewController:detailView animated:NO completion:nil];
标签: ios memory-management uiviewcontroller presentviewcontroller