Поэтому я использую этот проект, как мой пример меня вопрос: https://github.com/ioscreator/ioscreator/tree/master/IOS8SwiftAddSearchTableViewTutorialUISearchController внутри UISplitView с UINavigationController
два изменения я делаю являются # 1: сделать это универсальное приложение
# 2 перетащите контроллер UISplitview в Interface Builder и установите его как контроллер корневого представления с существующим UINavigationController, назначенным в виде подробного просмотра.
Загрузите его на iPad в портрете, и все в порядке, потому что он показывает только одну колонку , Если вы перевернете его на пейзаж и повторите попытку, вы увидите, что позиция в поисковой строке теперь неправильная. Я видел несколько других связанных с этим проблем, связанных с настройкой edgeForExtendedLayout = UIRectEdge.None, но это похоже на другую проблему, чем эта. Кто-нибудь еще сталкивается с этим или я делаю что-то неправильно?
Не знаю, используете ли вы раскадровку для установки UISearchBar, если ДА, а затем установите для нее надлежащее ограничение, так что она будет отображаться отлично –
Я добавляю UISearchBar в код. Я пытался возиться с добавлением ограничения, но я боюсь, что я недостаточно знаком с этим. Это то, что я пытался добавить: переопределить func viewDidAppear (анимированный: Bool) { let leadConstraint = NSLayoutConstraint (item: self.tableView.tableHeaderView !, attribute: NSLayoutAttribute.Leading, relatedBy: NSLayoutRelation.Equal, toItem: self.tableView.tableHeaderView ! .superview, attribute: NSLayoutAttribute.Leading, multiplier: 1, constant: 0) resultSearchController.searchBar.addConstraint (leadingConstraint) } –
Я предлагаю попробовать использовать раскадровку для заданного объекта с ограничением, потому что, сравнивая его с кодом, так просто. Иди бросьте какой-то учебник, который я знаю, это легко понять. Apple также рекомендовала использовать раскадровку для ограничения набора для объекта, а не кода. –