情况就是这样。我有2个控制器。在第一个控制器我有关于表格提交的正常反馈表格有弹出窗口(模态)。第二个控制器我用作模态。我使用第一个控制器的下面代码将第二个控制器称为模态。
popupObj= [self.storyboard instantiateViewControllerWithIdentifier:@"OTPDialogViewController"];
popupObj.view.frame = self.view.frame;
[self.view addSubview:popupObj.view];
[self addChildViewController:popupObj];
哪个工作正常。现在我想在第二个控制器中单击按钮关闭时关闭弹出窗口。下面的代码没有帮助
[self dismissModalViewControllerAnimated:NO];
您将popupObj视图控制器作为“子”视图控制器添加到第一个视图控制器。
如果你检查'addChildViewController:'的文档,解除它的相应方法(子视图控制器)是: - (void)removeFromParentViewController;
链接到: - (void)addChildViewController:(UIViewController *)childController; https://developer.apple.com/documentation/uikit/uiviewcontroller/1621394-addchildviewcontroller?language=objc
在popupObj视图中尝试这个控制器:
- (IBAction)dismissBtnClicked:(UIButton *)sender {
[self removeFromParentViewController];
}
链接到: - (void)removeFromParentViewController; https://developer.apple.com/documentation/uikit/uiviewcontroller/1621425-removefromparentviewcontroller?language=objc
希望这可以帮助。
这将在swift 4中为我工作。试试你的第二个视图控制器按钮动作方法
@IBAction func btncClose(_ sender: UIButton) {
self.dismiss(animated: true, completion: nil)
}