我正在尝试向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为零
试试这个
@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