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