迅速展开模态

时间:2019-05-23 09:42:36

标签: ios swift

我正在开发一个应用程序,如果出现网络问题,我会显示一个错误页面。该应用程序具有多个情节提要,并且可以在任何地方进行。

 func displayErrorPage(errorCode: ErrorCode) -> Void {
    if !isDisplayingError {
        DispatchQueue.main.async {
            self.isDisplayingError = true
            let storyboard = UIStoryboard(name: "alert", bundle: nil)
            let controller = storyboard.instantiateViewController(withIdentifier: "AlertScreen") as! AlertVC
            controller.errorCode = errorCode
            UIApplication.shared.topViewController?.present(controller, animated: true, completion: nil)
        }
    }
}

我想使用unwind消除它,清除所有视图并返回主页。我已经在警报视图中使用它来关闭它,但是有时不起作用。

 @IBAction func closeBtn(_ sender: Any) {
    flowError = true
    NetworkManager.shared().isDisplayingError = false
    performSegue(withIdentifier: "unwindToSH", sender: self)
 }

有人有指针吗?

1 个答案:

答案 0 :(得分:0)

  1. 在要展开的视图控制器中创建展开序列IBAction 。在您的情况下,可能是HomeViewController。将此代码添加到您的HomeViewController

    @IBAction func unwindToHomeVC(segue: UIStoryboardSegue) {}
    
  2. 连接放宽搜索-控制AlertVC’s中的ViewController图标的拖动以退出storyboard中的图标,选择放宽搜索动作(unwindToHomeVC ),该操作是在IBActions列表的步骤1中创建的。

  3. 指定segue标识符-在“实用工具”窗格的“属性”检查器中指定其标识符。例如:“ unwindToHomeVC
  4. 以编程方式触发搜寻-在适当的位置触发。就您而言,关闭按钮操作

    self.performSegue(withIdentifier: "unwindToMenu", sender: self)
    

    即使设置正确,即使您同时使用多个情节提要板,它也将起作用。希望这一点对您有所帮助。 谢谢