如何在Swift中通过按钮点击关闭弹出视图?

3
我已经创建了一个弹出窗口,在里面有两个按钮。我想在单击弹出窗口内的按钮时关闭弹出窗口。
这是我的代码: FirstViewController:
 @IBAction func bar_button(_ sender: UIBarButtonItem) {

    let vc = storyboard?.instantiateViewController(withIdentifier: "SecondViewController") as!
    SecondViewController
    vc.preferredContentSize = CGSize(width: 200,height:80)
    let navController = UINavigationController(rootViewController: vc)
    navController.modalPresentationStyle = UIModalPresentationStyle.popover

    let popover = navController.popoverPresentationController
    popover?.delegate = self
    popover?.barButtonItem = sender as! UIBarButtonItem
    self.present(navController, animated: true, completion: nil)

}

第二个视图控制器:
@IBAction func second_button(_ sender: UIButton) {
    //want to dismiss popover when button clicked
      }
@IBAction func second_button(_ sender: UIButton) {
   //want to dismiss popover when button clicked
      }
1个回答

6

请调用

dismiss(animated: true, completion: nil)

在这些方法中,这将关闭当前弹出框。

但是在这样做之后,它会给出以下警告 - UIPopoverBackgroundVisualEffectView 被要求动画其不透明度。这将导致效果在不透明度恢复到1之前出现破裂。 - Abhishek
@Abhishek:这个问题已经在以下答案中进行了简要解决,请查看并告诉我是否解决了您的问题,https://dev59.com/757ha4cB1Zd3GeqPeRkq - Bharath

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接