目前在加载的ViewController的标签栏中显示ViewController模态

时间:2019-04-13 14:42:10

标签: ios swift uitabbarcontroller

我有一个TabBarController,其中我有实现UIWebView的主ViewController,当没有连接时,它会显示模态ErrorViewController,该类具有一个重试按钮以关闭视图,并在完成时重新加载网络视图。我想让模式显示在选项卡视图(WebView在哪里)中,允许用户继续浏览选项卡。

我目前正在使用performSegue(withIdentifier: "showErrorView", sender: self),但它覆盖了整个屏幕。

我尝试使用NavigationController,但是当我弹出视图时,我没找到如何告诉弹出窗口中显示的ViewController来重新加载WebView(换句话说,我没有有比赛经理)

图片

App before modal appears

Current behaviour

Expected behaviour

2 个答案:

答案 0 :(得分:0)

在情节提要中,选择当前的模式选择并将演示文稿选择为PrecomputedTextCompat.getTextFuture而不是if (true) { (apiOneTextView as AppCompatTextView).setTextFuture( PrecomputedTextCompat.getTextFuture( apiOneTextView.text, TextViewCompat.getTextMetricsParams(apiOneTextView), null) ) }

答案 1 :(得分:0)

您可以设置Delegate(Protocol)方法以从ErrorVC与MainVC通信,以在被关闭时重新加载Webview。

代理

protocol WebViewDelegate: class {
    func reloadWebView()
}

ErrorVC

class ErrorVC: UIViewController {

    weak var delegate: WebViewDelegate?

    @IBAction func retryButtonClicked(_ sender: Any) {
        self.dismiss(animated: true, completion: nil)
        delegate. reloadWebView()
    }
}

MainVC

class MainVC: UIViewController, WebViewDelegate {

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {

        if let errorVC = segue.destination as? ErrorVC {
            errorVC.delegate = self
        }
    }

    func reloadWebView() {
        // reload code
    }
}