将自定义视图控制器推送到UIDocumentBrowserViewController的导航堆栈

问题描述 投票:0回答:1

我正在尝试向UIDocumentBrowserViewController添加自定义栏按钮项。我可以使用数组属性additionalLeadingNavigationBarButtonItems添加自定义条形项。我可以在运行应用程序时触发此按钮,但是,此外,当我触发按钮时,我想将新的视图控制器推送到UIDocumentBrowserViewController的导航堆栈上。有一个UIDocumentBrowserViewController.navigationController属性但是当我运行程序时这是nil。是否有正确的方法来访问与UIDocumentBrowserViewController关联的navigationController以及从条形按钮推送新视图控制器的正确方法。谢谢

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??
}

当我触发按钮时,程序只打印“在browserSettings中”navController为零

swift uinavigationcontroller uibarbuttonitem uidocumentbrowservc
1个回答
0
投票

试试这个

@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添加到UIViewControllerMain.Storyboard

Navigation Controller

© www.soinside.com 2019 - 2024. All rights reserved.