【发布时间】:2016-11-16 01:33:49
【问题描述】:
我有 2 个控制器,一个是子视图。 MainController 可以访问 SearchBar 属性,而 SubViewController 没有。主控制器中有一个 SearchBar 函数,我想在子视图控制器中调用它就是这个函数
// MainController
func searchBarCancelButtonClicked(_ searchBar: UISearchBar) {
// Stop doing the search stuff
// and clear the text in the search bar
searchBar.text = ""
// Hide the cancel button
searchBar.showsCancelButton = false
searchBar.endEditing(true)
Popup.Close_View()
}
我想要做的是将上面的函数包装在另一个这样的函数中
func Selected_Location() {
searchBarCancelButtonClicked(SearchBar)
}
这样在我的子视图控制器中我可以做
// SubView Controller
let Select_Close = MainController()
Select_Close.Selected_Location()
我是 Swift 新手,如前所述,如何获取 searchBarCancelButtonClicked 函数并在另一个函数中调用它?我尝试过多种方式,例如
func Selected_Location() {
searchBarCancelButtonClicked(_ searchBar: UISearchBar)
}
func Selected_Location() {
searchBarCancelButtonClicked(searchBar)
}
再一次,我的 SubView 控制器无法访问 UISearchBar,所以我试图从 SubView 中调用 SearchBar 关闭函数。
【问题讨论】:
-
根据您当前的描述,有一些不清楚的地方:我假设 MainController 是 SearchBar 委托是否正确?你说你有两个控制器,一个是子视图。你的意思是你有两个视图和两个视图控制器,其中一个视图是另一个视图的子视图,但它们都有自己的控制器?请提供更多详细信息。您将希望通过委托来实现此功能。
标签: ios swift swift3 uisearchbar