【发布时间】:2017-04-20 03:36:34
【问题描述】:
我正在使用 Xcode 8(确切地说是版本 8.1 (8B62))为 iOS 10 开发,并且我正在尝试开发一个视图控制器,它在 tableView 上方显示一个固定的 searchBar。我有初始布局,但是当我激活 searchBar 时,它完全从我的视图中消失了。
这是我的视图控制器的视图层次结构:
View
|
|---- UISearchBar
|
|---- UITableView
这是它的样子:
现在,问题来了。因为没有像 UISearchDisplayController 那样包含 UISearchController 的 Interface Builder 工具,所以我在视图控制器的 viewDidLoad 方法中以编程方式将 searchBar 添加到我的界面中,并且我正在使用 searchController.searchBar替换我在情节提要中使用的临时 UISearchBar:
// 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)
}
当我运行应用程序并激活附加到我的searchController 的searchBar 对象时,它会从视图中消失:
tableView 也发生了奇怪的变化,但我的主要关注点是让 searchBar 留在视图中。我已经尝试了一些不同的方法来完成这项工作,但我的运气为零。任何帮助深表感谢。我只是觉得它不应该那么难以实施。我可以用UISearchDisplayController 对象很好地做到这一点,但那些已被弃用,我正在努力成为一名优秀的程序员而不是使用它。
【问题讨论】:
标签: uisearchbar xcode8 ios10 uisearchcontroller