Dismiss NavigationViewController永远不会释放rootViewController

时间:2014-12-21 14:51:46

标签: ios objective-c iphone xcode

我试图在另一个viewController(view2)中显示一个模态视图控制器(view1)

视图1

@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

我在view2中使用以下代码

@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];
}

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

0 个答案:

没有答案