我们使用导航控制器和视图控制器向用户显示问题。一切都工作正常,但我们做了一些UI调整,所以我们可以将应用程序移植到iPad,唯一的变化是使表视图的框架动态在iphone或ipad上。然而,现在当我们从335中得到187问题时,它不再推出新问题了...它推动了一个空白屏幕并且从未调用推送视图控制器的“viewDidLoad”方法,因为它已经过去了187次。我们设置了断点,以确保导航控制器和视图控制器仍然在内存中分配,并且它们是。
以下是每次新推送调用的视图控制器的viewDidLoad ...
- (void)viewDidLoad {
_tableView = [[QuestionTableView alloc] initWithFrame:self.view.frame style:UITableViewStyleGrouped];
_tableView.center = CGPointMake(self.view.center.x, self.view.frame.size.height/2);
[_tableView setDataSource:self];
[_tableView setQuestionDelegate:self];
[_tableView setDelegate:self];
_tableView.scrollEnabled = YES;
[_tableView setBackgroundView:[[[UIView alloc] init] autorelease]];
_tableView.directionalLockEnabled = YES;
_tableView.delaysContentTouches = NO;
_tableView.backgroundColor = [UIColor clearColor];
_tableView.opaque = NO;
[self.view addSubview:_tableView];
}
我们推动视图控制器......
[questionsNavigationController pushViewController:viewController animated:YES];
先谢谢了! :)
答案 0 :(得分:0)
如果你使桌面视图更小,你可以完成整套335个问题吗?你是否每个问题创建一个ViewController?
您可以使用仪器运行项目以检查内存泄漏。
答案 1 :(得分:0)
你真的需要堆叠上的所有问题吗? popViewControllerAnimated怎么样:在推动下一个之前没有NO,也有动画:NO?
它适用于模拟器,因为它的内存是PC的内存。将NSLog放入-didReceiveMemoryWarning方法,以查看内存不足。
答案 2 :(得分:0)
可能你不应该这样使用NavigationController。这太丑了。
我会做以下其中一项: