我正在使用MVYMenu和故事板(XCode 5 / iOS7)。我不得不修改使用xibs的示例。 到目前为止,它有效,但我认为每次用户点击侧边菜单时实例化控制器时我都会泄漏视图控制器:
这是我的代码:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UINavigationController *navigationController;
UIViewController * mrViewController;
if (indexPath.row == 0) {
mrViewController = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"mrViewController1"];
} else if (indexPath.row == 1){
mrViewController = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"mrViewController2"];
} else if (indexPath.row == 2){
mrViewController = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"mrViewController3"];
} else if (indexPath.row == 3){
mrViewController = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"mrViewController4"];
} else {
mrViewController = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"mrViewController1"];
}
navigationController = [[UINavigationController alloc] initWithRootViewController:mrViewController];
[[self sideMenuController] changeContentViewController:navigationController closeMenu:YES];
}
当我监视性能时,每次单击表格单元格以显示新场景时,内存使用量都会增加。我想我必须在上面的代码中某处破坏以前的视图控制器,但我不知道如何以及在哪里?我是iOS新手,来自Android ......
答案 0 :(得分:1)
由于您正在使用故事板,因此请从tableViewController创建一个push segue(s)到您的详细视图控制器,并从didSelectRowAtIndexPath:方法中调用这些segue。这是在视图控制器与故事板之间转换的正确方法。它也比你正在做的容易得多。如果你的行是静态的,你甚至可以将segue直接挂钩到行,你根本不需要编程!