в моем приложении swift 2 У меня есть контроллер табличного представления с панелью поиска. i настраиваю панель поиска в моем представленииDidLoad. и в viewWillAppear я устанавливаю смещение моего tableView, потому что я хотел бы скрыть панель поиска при запуске. это работает finde.swift 2 search bar не будет скрыт после разговора segue
, но если я переключусь на другой контроллер представления и вернусь к TableViewController с выходом undeze segue, панель поиска будет непосредственно видна.
Если я вернусь к моему TableViewController с другого контроллера вида с нормальным модальным segue (не разворачивается), панель поиска будет скрыта, потому что tableview.setContentOffset будет активным.
любые идеи, что я делаю неправильно?
class TableViewController: UITableViewController, ADBannerViewDelegate, UISearchBarDelegate, UISearchResultsUpdating {
let managedObjectContext = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext
var items = [CoreData_ITEMS]()
func updateSearchResultsForSearchController(searchController: UISearchController) {}
func DatenAbrufen() {
let fetchRequest = NSFetchRequest(entityName: "ITEMS")
do {
try self.items = self.managedObjectContext!.executeFetchRequest(fetchRequest) as! [CoreData_ITEMS]
} catch { }
self.tableView.reloadData()
}
/*************** VIEW DID LOAD ***************/
override func viewDidLoad() {
super.viewDidLoad()
let searchController = UISearchController(searchResultsController: nil)
searchController.searchBar.delegate = self
searchController.searchResultsUpdater = self
searchController.hidesNavigationBarDuringPresentation = false
searchController.dimsBackgroundDuringPresentation = false
tableView.tableHeaderView = searchController.searchBar
}
override func viewWillAppear(animated: Bool) {
DatenAbrufen()
tableView.contentOffset = CGPointMake(0,44)
}
/*************** ANZAHL DER ZELLEN ERMITTELN ***************/
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return items.count
}
/*************** ZELLEN MIT INHALT FÜLLEN ***************/
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = self.tableView.dequeueReusableCellWithIdentifier("Cell") as! ModifyCells
var ITEM:CoreData_ITEMS
ITEM = items[indexPath.row]
cell.Name.text = ITEM.name
return cell
}
/*************** EXIT FUNKTIONEN ***************/
@IBAction func exit_to_TViewController(segue: UIStoryboardSegue) {}
}
Я поместил этот вызов в 'viewDidAppear' => тот же результат, что и сообщение 1. Я положил этот вызов в панель просмотра' viewDidLayoutSubviews' =>, теперь он скрыт все время. но теперь я не могу прокрутить вниз по представлению таблицы, чтобы показать строку поиска ... – Stack108
Также попробуйте использовать 'tableView.setContentOffset (CGPoint (x: 0, y: 44), анимированный: false)' вместо 'tableView.contentOffset =' – Jelly
в порядке, если я поместил это в 'viewDidLayoutSubviews' при первом запуске, я вижу, как таблица будет прокручиваться вниз, а панель поиска будет скрыта. но если прокрутка вверх (чтобы показать строку поиска), таблица автоматически прокручивается вниз - каждый раз. в 'didappear' у меня была такая же проблема, как и сообщение 1 – Stack108