关闭模态ViewController弹出窗口

时间:2018-09-02 15:37:38

标签: ios objective-c xcode modal-dialog

是这种情况。 我有2个控制器。在第一个控制器中,我在提交表单时有正常的反馈表单,其中有popup(modal)。我正在使用第二个控制器作为模态。我正在使用第一个控制器中的以下代码将第二个控制器称为模式控制器。

popupObj= [self.storyboard instantiateViewControllerWithIdentifier:@"OTPDialogViewController"];
popupObj.view.frame = self.view.frame;
[self.view addSubview:popupObj.view];
[self addChildViewController:popupObj];

哪个工作正常。现在我想取消在第二个控制器中单击按钮关闭时的弹出窗口。下面的代码无济于事

[self dismissModalViewControllerAnimated:NO];

2 个答案:

答案 0 :(得分:1)

您要将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

希望这会有所帮助。

答案 1 :(得分:0)

这对我来说很快。4.尝试第二种视图控制器按钮操作方法

 @IBAction func btncClose(_ sender: UIButton) {

        self.dismiss(animated: true, completion: nil)
    }