Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/112.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用Swift 4关闭WKWebView并更改ViewController_Ios_Swift_Wkwebview - Fatal编程技术网

Ios 使用Swift 4关闭WKWebView并更改ViewController

Ios 使用Swift 4关闭WKWebView并更改ViewController,ios,swift,wkwebview,Ios,Swift,Wkwebview,我正在学习Swift 4和Xcode 我不知道如何在WKWebView打开后关闭它 我用它来显示PDF文档,并添加了一个带有“完成”按钮的导航栏 我已经知道如何关闭它并转到根UIViewController,但是我希望它转到名为“DocumentsViewController”的视图控制器 下面是我正在使用的代码,但我相信我正在尝试修复的代码是: let doneItem=UIBarButtonItem(barButtonSystemItem:UIBarButtonItem.SystemItem

我正在学习Swift 4和Xcode

我不知道如何在WKWebView打开后关闭它

我用它来显示PDF文档,并添加了一个带有“完成”按钮的导航栏

我已经知道如何关闭它并转到根UIViewController,但是我希望它转到名为“DocumentsViewController”的视图控制器

下面是我正在使用的代码,但我相信我正在尝试修复的代码是:
let doneItem=UIBarButtonItem(barButtonSystemItem:UIBarButtonItem.SystemItem.done,目标:nil,操作:#选择器(selectAction(:)))

选择动作为:

@objc func selectAction(_ sender:UIBarButtonItem) -> Void {
    //print("Select Clicked")
    self.view.window?.rootViewController?.dismiss(animated: true, completion: nil)
}
我花了好几个小时想弄明白!当我单击“完成”按钮时,它将关闭WKWebView并转到“DocumentsViewController”时,我如何才能做到这一点

@objc func selectAction(_ sender:UIBarButtonItem) -> Void {
    //print("Select Clicked")
    self.view.window?.rootViewController?.dismiss(animated: true, completion: nil)
}

override func viewDidLoad() {
    super.viewDidLoad()

    if let url = Bundle.main.url(forResource: pdfTitle, withExtension: "pdf") {
    let webView = WKWebView(frame: self.view.frame)
    let urlRequest = URLRequest(url: url)
    webView.load(urlRequest as URLRequest)
    self.view.addSubview(webView)
    self.tabBarController?.tabBar.isHidden = true

    let screenSize: CGRect = UIScreen.main.bounds

    let navBar: UINavigationBar = UINavigationBar(frame: CGRect(x: 0, y: 0, width: screenSize.width, height: 44))
    self.view.addSubview(navBar);

    let navItem = UINavigationItem(title: "");
    let doneItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonItem.SystemItem.done, target: nil, action: #selector(selectAction(_:)))

    navItem.rightBarButtonItem = doneItem;

    navBar.setItems([navItem], animated: false);

    // Get height of status bar (iPhone X introduced a new status bar)
    let statusBarHeight = UIApplication.shared.statusBarFrame.height
    // Initialize the frame
    webView.frame = CGRect.init(x: 0, y: statusBarHeight, width: view.bounds.maxX, height: view.bounds.maxY)
    // Set background color of status bar (optional)
    self.view.backgroundColor = UIColor(red: 248/255.0, green: 248/255.0, blue: 248/255.0, alpha: 1.0)
}

只需将新视图添加到导航堆栈

@objc func selectAction(_ sender:UIBarButtonItem) -> Void {
let newViewController = DocumentsViewController()
self.navigationController?.pushViewController(newViewController, animated: true)
}

只需将新视图添加到导航堆栈

@objc func selectAction(_ sender:UIBarButtonItem) -> Void {
let newViewController = DocumentsViewController()
self.navigationController?.pushViewController(newViewController, animated: true)
}