У меня есть 2 контроллера: Controller1 и Controller2, который служит в качестве SubView. Controller1 имеет прикрепленный к нему UISearchBar, а OnClick Controller2 отображается как SubView с TableView. В качестве пользовательских типов в SearchBar я могу получить результаты с помощью этогоIOS Swift Как получить текстовое значение SearchBar на View 1 to View 2
// Controller1
@IBOutlet weak var mySearch: UISearchBar!
override func viewDidLoad() {
super.viewDidLoad()
mySearch.delegate = self
// Do any additional setup after loading the view.
}
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String){
if let text = searchBar.text {
let search = text.trimmingCharacters(in: .whitespaces)
_ = search
}
}
Теперь моя самая большая проблема получает значение, которое я получаю в SearchText и передавая его на Controller2 Как я могу идти об этом ? Controller2 выполняет запрос HTTP-сообщения и будет использовать значение SearchText в Controller1. Это код в Controller2
class Controller2: UIViewController,UITableViewDataSource {
@IBOutlet weak var TableSource: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
TableSource.dataSource = self
// I would like to get value of SearchText here so that I can
// send it as a parameter in my HttpPost request
session.dataTask(with:request, completionHandler: {(data, response, error) in
if error != nil {
} else {
do {
// get Json Data
} catch let error as NSError {
print(error)
}
print(self.locations)
}
}).resume()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func tableView(_ tableView:UITableView, numberOfRowsInSection section:Int) -> Int {
return locations.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Registration_Search", for: indexPath)
return cell
}
}
Это в Controller1 и на отводе UISearchBar это, как я получаю Controller2 как подвид
func searchBarShouldBeginEditing(_ searchBar: UISearchBar) -> Bool {
Location_Search.showsCancelButton = true
let Popup = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "Controller2") as! Controller2
self.addChildViewController(Popup)
Popup.view.frame = self.Controller2.frame
self.view.addSubview(Popup.view)
Popup.didMove(toParentViewController: self)
return true
}
Какова иерархия viewcontrollers как? У обоих есть разные навигационные контроллеры или те же самые? – Sethmr
Они всего лишь 2 разных контроллера ViewControllers нет контроллеров навигации – user1591668
Два разных контроллера просмотра, которые находятся внутри чего? Они должны быть в чем-то или в какой-то форме иерархии, чтобы вы могли получить доступ к обоим из них одновременно. – Sethmr