【发布时间】:2011-09-28 06:46:14
【问题描述】:
我正在展示和关闭模态视图控制器。我使用委托,所以我在 Parent 处关闭了 modalView。
- (void)launchDrawingSection{
drawingSectionViewController = [[DrawingSectionViewController alloc] init];
drawingSectionViewController.modalTransitionStyle = UIViewAnimationTransitionFlipFromLeft;
drawingSectionViewController.drawingModalDelegate = self;
[self presentModalViewController:drawingSectionViewController animated:YES];
}
- (void)didDismissDrawingModalView{
NSLog(@"didDismissDrawingModalView");
[drawingSectionViewController release];
[self dismissModalViewControllerAnimated:YES];
}
调用 ModalView 中的 dealloc 方法后应用崩溃。
我呈现和关闭模态视图控制器的方式有问题吗?有什么想法吗?
【问题讨论】:
-
如果它在模态视图控制器的
dealloc中崩溃,您可能已经过度释放其实例变量之一。有崩溃日志吗? -
didDismissDrawingModalView 方法何时被调用?
-
退出 ModalView 时调用。这是我使用的一种协议方法,因此 ParentView 是关闭模态视图的方法。
-
“退出”ModalView 是什么意思? DrawingModalView 被呈现为模态视图控制器。它应该退出的唯一方法是“解雇”。由于您的函数名称“didDismissDrawingModalView”表明 DrawingModalView 已经“确实”关闭了,那么为什么它再次被关闭?
-
这只是一个糟糕的函数名。在 ModalView 中,我有一个名为 DismissView 的函数,它告诉 Delegate(ParentView) 函数 didDismissDrawingModalView 关闭视图。所以它只被解雇一次。
标签: iphone objective-c ios4