我使用以下代码在视图控制器之间切换..(工作正常)我也有很多视图控制器我不仅仅是在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];
我在视图控制器之间转换时看到内存使用爬升
所以我做了一些研究,并意识到我不会解雇以前的视图控制器。我在调用[self dismissViewControllerAnimated:NO completion:nil];
之前使用了以下代码presentViewcontroller:
(之后我也尝试过使用它)并且它不起作用。如果我在没有任何反应之后使用它...在我收到以下警告之前使用它
主题1:EXC_BAD_ACCESS(代码= 1 ......等等,如果你需要剩下的话请告诉我
我也尝试过这样的事情......
[detailView presentViewController:detailView animated:NO completion:nil];
[self dismissViewControllerAnimated:NO completion:nil];
我做错了什么?
答案 0 :(得分:0)
以下是从导航堆栈中删除VC的代码。
NSMutableArray *navigationArray = [[NSMutableArray alloc] initWithArray: self.navigationController.viewControllers];
// [navigationArray removeAllObjects]; // This is just for remove all view controller from navigation stack.
[navigationArray removeObjectAtIndex: 2]; // You can pass your index here
self.navigationController.viewControllers = navigationArray;
[navigationArray release];
但是请注意, 通过执行此操作,您将无法转到上一个VC,因为您从堆栈中删除了以前的VC。
当您抱怨内存 时,我会再次说出DOUBLE CHECK代码并调查内存的使用情况。如果不需要该对象,请释放该对象,以便不存在内存问题。
答案 1 :(得分:-1)
如果要返回到根视图控制器,则必须使用此代码。
[self.navigationController popToRootViewControllerAnimated:YES];