ios - 模态视图 Controller 未调用呈现 View Controller 的dismissModalViewControllerAnimated : method

标签 ios uiviewcontroller uikit modal-dialog

在我的模态视图 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/

相关文章:

ios - 如何在单元格部分而不是标题部分设置背景颜色?

iphone - UIImage上的TapGestureRecgonizer在 Storyboard 设置中不起作用

ios - 如何将日期传回父类并更改标签?

ios - 在 React-Native 中将 RCTRootView 作为 subview 添加到 rootViewController

iphone - 如何将UI颜色设置为深蓝色

objective-c - 关于ios的内存管理

ios - 苹果手机SDK : how to distinguish between touch and drag

ios - 不相关的 UIViewController 的 viewDidLoad 被调用

ios - subview Controller 中的 UIAccessibilityContainer?

ios - UISplitViewController:最初显示详细 View