Добавьте кнопку "Готово", чтобы отклонить программно созданный UIViewController

Я быстрый новичок и сделал демонстрационное приложение с UIViewController и UITableViewController в раскадровке. У UIViewController есть Collection View и встроенный контроллер навигации. При нажатии на ячейку просмотра коллекции приложение переходит в UITableViewController. Я также могу вернуться в свой UIViewController из UITableViewController. Все это хорошо работает. Теперь некоторые строки в моем UITableViewController имеют URL-адреса. При нажатии на URL-адрес я программно создаю веб-просмотр внутри UIviewcontroller и получаю URL-адрес для загрузки. Проблема в том, что я не могу уволить веб-просмотр и вернуться к моему UITableViewController после этого. Это код, который у меня есть в моем классе UITableViewController:

// When user taps a row, get the URL and load it in a webview
let mywebViewController = UIViewController()
let webView = UIWebView(frame: mywebViewController.view.bounds)
webView.loadRequest(NSURLRequest(URL: url)) // url from the row a user taps
mywebViewController.view = webView
self.navigationController!.presentViewController(mywebViewController, animated: true, completion: nil)

Как я могу добавить кнопку "Готово" к этому программно созданному UIviewcontroller, чтобы закрыть веб-представление и вернуться к моему UITableViewController

Ответ 1

Вы можете обернуть mywebViewController в UINavigationController, затем установите rightBarButtonItem в UIBarButtonItem(barButtonSystemItem: .Done, target: self, action: "dismiss") следующим образом:

let navController = UINavigationController(rootViewController: mywebViewController)
mywebViewController.navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .Done, target: self, action: "dismiss")

self.navigationController!.presentViewController(navController, animated: true, completion: nil)

и добавьте функцию dismiss в UITableViewController:

func dismiss() {
    self.dismissViewControllerAnimated(true, completion: nil)
}

Ответ 2

Добавьте кнопку done к представленному ViewController и сделайте для нее действие. Чтобы отклонить ViewController, попробуйте следующее:

self.dismissViewControllerAnimated(true, completion: nil)

Ответ 3

Добавить кнопку в mywebViewController и в ее @IBAction вызвать

self.dismissViewControllerAnimated(true, completion: nil)

Ответ 4

Вы можете сделать одно.

Когда вы нажимаете mywebViewController на навигационный контроллер, сделайте навигационную панель видимой.

Просто нажав кнопку "Назад" на панели навигации, вы можете легко отменить свой mywebViewController.

Надеюсь, это поможет вам.:)