UISplitViewController автоматически переходит к деталям viewController - PullRequest
0 голосов
/ 27 октября 2018

Я настраиваю UISplitViewController программно.Этот код автоматически переключается на detailViewController, что является нежелательным поведением.Вместо этого я хотел бы представить masterViewController и позволить пользователю выбрать detailViewController с didSelectRowAt IndexPath.Любая помощь приветствуется.

let splitViewController = UISplitViewController(nibName: nil, bundle: nil)
let masterNavigationController = UINavigationController(rootViewController: MasterViewController(nibName: nil, bundle: nil))
let detailNavigationController = UINavigationController(rootViewController: DetailViewController(nibName: nil, bundle: nil))
splitViewController.viewControllers = [masterNavigationController, detailNavigationController]
present(splitViewController, animated: true, completion: nil)

1 Ответ

0 голосов
/ 27 октября 2018

Реализуйте метод UISplitViewControllerDelegate splitViewController(_:showDetail:sender:) (документация здесь ), чтобы переопределить поведение вашего split vc.

В вашем конкретном случае он должен возвращать true все время, кромевремя, когда разделенный vc представлен изначально.В этом случае вы можете установить переменную flag, например,

var isInitialState: Bool = true

, а затем установить ее в false, как только разделенный виртуальный канал будет представлен полностью - здесь я не уверен, когда будет лучшее время, ноЯ бы догадался

override func viewDidAppear(_ animated: Bool) {
[...]
  isInitialState = false
[...]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...