вставить пользовательский контроллер представления в стек навигации UIDocumentBrowserViewController - PullRequest
0 голосов
/ 01 мая 2019

Я пытаюсь добавить пользовательский элемент панели кнопок в UIDocumentBrowserViewController.Я могу добавить пользовательский элемент панели, используя свойство массива additionalLeadingNavigationBarButtonItems.Я могу активировать эту кнопку при запуске приложения, однако, кроме того, когда я запускаю кнопку, я бы хотел поместить новый контроллер представления в стек навигации UIDocumentBrowserViewController.Существует свойство UIDocumentBrowserViewController .navigationController, однако при запуске программы это значение равно нулю.Существует ли правильный способ доступа к навигационному контроллеру, связанному с UIDocumentBrowserViewController, и как правильно выдвигать новый контроллер вида из кнопки панели.Спасибо

override func viewDidLoad() {
    super.viewDidLoad()
    delegate = self
    allowsDocumentCreation = true
    allowsPickingMultipleItems = false

    let barButton = UIBarButtonItem.init(title: "⚙︎", style: .plain, target: self, action: #selector(browserSettings))

    additionalLeadingNavigationBarButtonItems = [barButton]
}

@objc func browserSettings() {
    print("in browserSettings")
    let settingViewController = HelpViewController()
    settingViewController.setupView()
    settingViewController.textView.text = "hello"
    settingViewController.textView.contentOffset = CGPoint.zero
    let navController = self.navigationController
    navController?.pushViewController(settingViewController, animated: true)
    //navController is nil??
}

, когда я запускаю кнопку, программа просто печатает "в настройках браузера". NavController равен nil

1 Ответ

0 голосов
/ 01 мая 2019

Попробуйте это

@objc func browserSettings() {
    print("in browserSettings")
    let settingViewController = UIStoryboard.init(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "StoryboardID") as! HelpViewController
    settingViewController.textView.text = "hello"
    settingViewController.textView.contentOffset = CGPoint.zero
    self.navigationController?.pushViewController(settingViewController, animated: true)
}

И добавьте Navigation Controller к UIViewController в Main.Storyboard

Navigation Controller

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...