Добавьте кнопку "Готово", чтобы отклонить программно созданный 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
.
Надеюсь, это поможет вам.:)