Ios Dissmis NavigationViewController从不解除rootViewController的锁定

Ios Dissmis NavigationViewController从不解除rootViewController的锁定,ios,objective-c,iphone,xcode,Ios,Objective C,Iphone,Xcode,我试图在另一个viewControllerview2中显示模式视图controllerview1 视图1 问题是NavViewController调用其dealloc方法,但view1在Dismission之后根本不会调用它。这意味着view1将保留在内存中。 如何释放view1的内存?这是什么[[NavViewController alloc]view1];'?如果要设置视图控制器的动画,则需要完成视图控制器的零化。。。我不确定这是否是你的问题,因为在我看来,如果你的当前代码真的按照你的意图运

我试图在另一个viewControllerview2中显示模式视图controllerview1

视图1 问题是NavViewController调用其dealloc方法,但view1在Dismission之后根本不会调用它。这意味着view1将保留在内存中。
如何释放view1的内存?

这是什么[[NavViewController alloc]view1];'?如果要设置视图控制器的动画,则需要完成视图控制器的零化。。。我不确定这是否是你的问题,因为在我看来,如果你的当前代码真的按照你的意图运行,那么它应该会导致错误。我很抱歉@Avi Tsadok。我已经修改了我的问题。您根本不需要将viewController设置为零。删除它,然后再试一次…@SamehDos-你认为view1会被发布是对的,但是你的问题忽略了一件重要的事情:你有什么证据证明它不会被发布?您是否在view1中实现dealloc并在那里设置断点?
@interface View1 : UIViewController
@property (weak) id delegate;

- (IBAction)closeButtonTapped:(id)sender ;
@end

@protocol View1Delegates <NSObject>

@optional

- (void)viewControllerDidFinish: (View1 *) viewController;

@end


@implementation View1

-(void)dealloc
{

}

- (void)viewDidLoad {

}

- (IBAction)closeButtonTapped:(id)sender {
    [self.delegate viewControllerDidFinish:self];
}

@end
@implementation View2

- (void)viewDidLoad {
    [super viewDidLoad];
}

- (IBAction)onOpenView1Tapped:(id)sender
{
    View1 *view1 = [self.storyboard instantiateViewControllerWithIdentifier:@"view1"];
    NavViewController *nav = [[NavViewController alloc] initWithRootViewController:view1];
    view1.delegate = self;

    [self presentViewController:nav animated:NO completion:NULL];
}

- (void) viewControllerDidFinish: (View1 *) viewController
{
    [self dismissViewControllerAnimated:NO completion:NULL];
}