Итак, я добавляю UISplitViewController
к проекту, который встроен в UITabBarController
.Как использовать UISplitViewController в Swift
UISplitViewController
имеет UINavigationController
в качестве мастера & Детальное отношение к собственному корневому контроллеру.
Мастер UINavigationController
rootController
имеет подробную информацию о деталях UINavigationController
.
Смотрите здесь:
Все довольно просто, не так? Теперь в TableViewController я делаю следующее:
class TableViewController: TableViewController, UISplitViewControllerDelegate {
var collapseDetailViewController: Bool = false
override func viewDidLoad() {
super.viewDidLoad()
splitViewController?.delegate = self
}
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
collapseDetailViewController = false
}
// MARK: - UISplitViewControllerDelegate
func splitViewController(splitViewController: UISplitViewController, collapseSecondaryViewController secondaryViewController: UIViewController, ontoPrimaryViewController primaryViewController: UIViewController) -> Bool {
return false
}
У меня также есть расширение UISplitViewController и выполните следующие действия;
extension UISplitViewController: UISplitViewControllerDelegate {
public override func viewDidLoad() {
self.extendedLayoutIncludesOpaqueBars = true
}
}
Со всем этим я получаю следующие проблемы;
При нажатии на
tableviewcell
, чтобы непосредственно перейти к деталям просмотреть подробный вид открывается в главной левой части окна, когда на IPad в альбомной, а не справа. Я также не могу понять, как показать Master View в качестве первого вида, когда вы находитесь в «Портрет на iPad» или на iPhone. Эти две проблемы могут быть или не быть связаны Я не уверен.На Mobile есть нижняя полоса над панелью вкладок, что я не могу понять, как удалить. У меня была та же проблема на iPad, пока я не добавил код в расширениях
UISplitViewController
viewDidLoad
, однако это не повлияло на мобильный. Смотрите здесь,
PS: Я не уверен, что если вопрос слишком долго, я чувствовал, что лучше всего поместить все в контексте. Также я проводил много исследований, но я не могу найти какие-либо ресурсы в swift, которые используют UITabBarController.
я сделал следовать следующему обучающей http://nshipster.com/uisplitviewcontroller/
Итак, я сделал все, что вы сказали, даже посмотрел на учебник raywenderlick (уже сделанный ранее) и создал новый проект в качестве основной детали, чтобы увидеть, как это делает яблоко. Во всех примерах это так, что сначала отображается подробный вид, затем вы возвращаетесь к мастеру - что не имеет для меня никакого смысла, например, посмотрите на приложение настроек, которое вы выбираете в категории, сначала не загружаете общие настройки, а затем возвращайтесь к категориям. Детальное представление все еще загружается в главное окно и теперь имеет два нижних бара: (единственный код в главном atm - 'self.splitViewController ?.preferredDisplayMode = .Automatic' –
, то не показывайте detailViewController. Сделайте это в masterViewController's 'didSelectRowAtIndexPath'. Что я сделал для своего приложения, было 2 раскадровки для ipad и iphone, с и без splitViewController. – shinoys222
действие в навигационной панели deatilVC должно быть установлено в splitVC или master's – shinoys222