在我的模态视图 Controller 中,我有一个按钮处理方法,其中包括
[self dismissModalViewControllerAnimated: YES];
在呈现 View Controller 中,我覆盖了dismissModalViewControllerAnimated:如下:
-(void) dismissModalViewControllerAnimated: (BOOL)animated
{
NSLog(@"dismiss");
[super dismissModalViewControllerAnimated: animated];
}
当按钮被触摸时,按钮处理方法被调用,但dismissModalViewControllerAnimated: override 似乎没有被调用: NSLog(@"dismiss");不调用语句,并且方法内的断点不会被命中。
我试过
[[self presentingViewController] dismissModalViewControllerAnimated: YES];
但这也没有用。但是,模态视图 Controller 确实被解雇了。
知道可能出了什么问题吗?
最佳答案
这通常通过将呈现 View Controller 声明为模态视图 Controller 的委托(delegate)来处理。模态 VC 然后在呈现的 VC 中调用一个委托(delegate)方法来关闭它创建的模态转换。
例子:
模态VC.h:
@protocol ModalViewControllerDelegate
-(void)dismissMyModalViewController;
@end
模态VC.m:
// When you want to dismiss the Modal VC
[delegate dismissMyModalViewController];
介绍 VC.h:
// Make sure to #import ModalVC.h
@property (nonatomic, retain) id <ModalViewControllerDelegate> delegate;
介绍 VC.m:
-(void)dismissMyModalViewController {
[self dismissModalViewControllerAnimated:YES];
}
关于ios - 模态视图 Controller 未调用呈现 View Controller 的dismissModalViewControllerAnimated : method,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8905961/