我正在使用Xcode 8(准确地说是版本8.1(8B62))为iOS 10开发,并且我正在尝试开发一个在{{{{{{{{{{{{{{{{ 1}}。我已经获得了初始布局,但是当我激活searchBar
时,它会从我的视野中完全消失。
这是我的视图控制器的视图层次结构:
tableView
以下是它的样子:
现在,问题。由于没有用于包含searchBar
的{{1}}的界面生成器工具,我将View
|
|---- UISearchBar
|
|---- UITableView
以编程方式添加到我的视图控制器的界面中UISearchController
{ {1}}方法,我使用UISearchDisplayController
替换我在故事板中使用的临时UISearchBar:
searchBar
当我运行应用并激活附加到viewDidLoad
的{{1}}对象时,它会从视图中消失:
searchController.searchBar
也奇怪地转变,但我的主要焦点是让// attribute to store the searchController
var searchController: UISearchController!
// temporary searchBar from storyboard
@IBOutlet weak var tempSearchBar: UISearchBar!
...
override func viewDidLoad() {
super.viewDidLoad()
searchController = UISearchController(searchResultsController: nil)
searchController.searchResultsUpdater = self
searchController.searchBar.frame = tempSearchBar.frame
tempSearchBar.removeFromSuperview()
view.addSubview(searchController.searchBar)
}
保持在视图中。我已经尝试了一些不同的东西来完成这项工作,但我没有运气。任何帮助深表感谢。我觉得这不应该难以实施。我可以使用searchBar
对象做得很好,但是这些已被弃用,我试图成为一名优秀的程序员而不是使用它。
答案 0 :(得分:0)
我和你有同样的问题。问题源于尝试手动设置searchBar的框架。你是否需要故事板中的临时搜索栏?
要解决此问题,请删除设置框架的代码,并将tableview从storyboard连接到代码:
override func viewDidLoad() {
super.viewDidLoad()
searchController = UISearchController(searchResultsController: nil)
searchController.searchResultsUpdater = self
tableView.tableHeaderView = searchController.searchBar
}