removeFromSuperview在使用ARC时不释放视图

时间:2013-06-12 23:04:19

标签: ios objective-c uiview subview

我在我的最终视图中添加了一个子视图,用于更改应用程序的优先级。 我在最终视图中添加了这样的内容

getPrefrencesViewController = [[GetPrefrencesViewController alloc] init];
getPrefrencesViewController.view setBackgroundColor:[UIColor clearColor]];

getPrefrencesViewController.view.frame = CGRectMake(0.0, 480.0, 320.0, 480.0);

getPrefrencesViewController.prefToolBar.frame = CGRectMake(0.0, 9.0, 320.0, 45.0);
[getPrefrencesViewController.view addSubview:getPrefrencesViewController.prefToolBar];

getPrefrencesViewController.prefTableView.frame = CGRectMake(0.0, 54.0, 320.0, 435.0);
[getPrefrencesViewController.view addSubview:getPrefrencesViewController.prefTableView];


[self.navigationController.view insertSubview:getPrefrencesViewController.view aboveSubview:self.navigationController.view];




            [UIView animateWithDuration:0.3
                                  delay:0.0f
                                options:UIViewAnimationOptionCurveEaseIn
                             animations:^{

                                 getPrefrencesViewController.view.frame = CGRectMake(0.0, 10.0, 320.0, 480.0);

                             } completion:^(BOOL finished) {
                                 if (finished) {
                                     NSLog(@"YAY!");
                                 }
                             }];
        }

这很好......

当新视图作为子视图添加时,我有一个带有两个按钮的UIToolBar保存和取消,当用户触摸取消时,使用此代码

- (IBAction)cancleUIButton:(id)sender {
    //unload portrait view
    [UIView animateWithDuration:0.4
                          delay:0.0f
                        options:UIViewAnimationOptionCurveEaseIn
                     animations:^{



                         self.view.frame = CGRectMake(0.0, 480.0, 320.0, 480.0); 



                     } completion:^(BOOL finished) {
                         if (finished) {

                             // remove subView for superView
                             [self.view removeFromSuperview];



                         }
                     }];
}

你可以看到我添加了子视图,向上动画,然后当用户按下取消时我为视图设置动画,然后将其从superview中移除..但是如果我再次加载它,我更改但未保存的所有值仍然是已更改,意味着视图永远不会被删除。

我希望有人可以告诉我为什么这个观点永远不会被删除?任何帮助将不胜感激。

0 个答案:

没有答案