2

我遇到了内存管理问题,终于找到了问题,我不断实例化新的视图控制器。当应用程序启动时,它直接进入情节提要中FirstViewController的元素。UITabBarController

然后我FilterViewController用这个方法展示:

- (IBAction)searchOptions:(id)sender {
    FilterViewController *ctrl = [[FilterViewController alloc] init];
    [UIView transitionFromView:self.view toView:ctrl.view duration:1 
          options:UIViewAnimationOptionTransitionCurlUp completion:nil];

    self.filterViewController = ctrl;

    [self.navigationController pushViewController:self.filterViewController 
          animated:NO];
}

哪个工作正常并提出了FilterViewController哪个有自己的.xib,所以它不在情节提要中。

现在,当尝试弹回时,FirstViewController我使用此方法:

- (IBAction)backToMap:(id)sender {

    // i used the below when trying to push another view controller
    /*UIStoryboard *storyboard = [UIStoryboard storyboardWithName
        :@"MainStoryboard" bundle:nil];

    FirstViewController *fvc = [storyboard 
        instantiateViewControllerWithIdentifier:@"FirstViewController"];

    fvc.modalTransitionStyle = UIModalTransitionStyleCoverVertical;*/

    [self.navigationController popViewControllerAnimated:YES];
}

然而它没有做任何事情。什么都没有,我看不出这里有什么问题?

4

1 回答 1

1

popViewontrollerAnimated 仅在您将视图控制器推送到导航堆栈时使用,因此除非您的项目中有一个,否则它不会在这里做任何事情。

当您使用 transitionFromView... 时,您正在用新视图替换当前视图,因此您需要再次调用它以返回旧视图。

于 2013-07-22T09:22:37.387 回答