如何通过搜索栏创建一个segue到另一个视图控制器?结果的字符串值搜索栏以编程方式在newViewController中转换为新的String变量 . 我怎么能这样做?
func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
// Here I'm trying catch user input
userInput = "http://api.giphy.com/v1/gifs/search?" + "q=" + searchBar.text! + "&api_key=dc6zaTOxFJmzC"
performSegue(withIdentifier: "searchView", sender: self)
}
//My segue
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue .identifier == "searchView" {
let DestViewController = segue.destination as! SearchResultController
DestViewController.userInputRequest = userInput
}
//My new View Controller
class SearchResultController: UICollectionViewController, UICollectionViewDelegateFlowLayout, UISearchBarDelegate {
var userInputRequest: String = ""
let userRequestArray = [Image]()
override func viewDidLoad() {
}
1 回答
首先,确保
searchBar.delegate
已连接到viewController .您应该从UISearchBarDelegate实现searchBarSearchButtonClicked(_:)方法:
在您的情况下,当用户点击keyborad上的“搜索”按钮时,它将被调用 .
所以,你应该做到以下几点:
EDIT:
如果您不使用storyboard(和segues),代码应该是:
希望这有帮助 .