从另一个视图控制器返回后,如何在主故事板上保留大标题?

时间:2019-04-16 04:49:09

标签: ios swift uinavigationbar

我正在尝试在我的主页和另一个故事板上使用带有不同preferlargetitles布尔值的导航控制器。当我开始仿真时,它以大标题true落在主页上。然后,我点击一个集合视图单元格以查看pdf,并将该视图控制器的大标题设置为false(或者,我相信)。当我将导航控制器上的后退按钮按到主页上时,大标题现在设置为false。

我尝试在collectionview viewDidLoad中将大标题设置为true,但是什么也没有。

转到pdf视图控制器的主页代码:

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
        let selectedRow = indexPath.row
        if selectedRow == 0 {
            print("add button selected")
            return
        }
        else {
            let document = Data.documentModel[selectedRow - 1]
            let storyboard = UIStoryboard(name: String(describing: NoteTakingViewController.self), bundle: nil)
            let vc = storyboard.instantiateInitialViewController() as! NoteTakingViewController
            vc.document = document
            //self.present(vc, animated: true, completion: nil)
            self.show(vc, sender: selectedRow)
        }

从主页上点击文件后pdf视图控制器内部的代码:

override func viewDidLoad() {
        super.viewDidLoad()
        ....(to view the pdf code went here)
        self.title = document.title
        navigationController?.navigationBar.prefersLargeTitles = false
        // Do any additional setup after loading the view.
    }

当我进入情节提要时,我会得到一个小标题,但它会转到主页。

2 个答案:

答案 0 :(得分:2)

在情节提要的导航栏中,未选中“大标题”。

在View Controller中,您必须使用大标题:

self.navigationController?.navigationBar.prefersLargeTitles = true

答案 1 :(得分:0)

在主视图控制器中编写此行代码,这样您每次访问该视图控制器时,标题将设置为大,现在您可以从viewdidLoad中删除

override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated) // No need for semicolon
     navigationController?.navigationBar.prefersLargeTitles = true
}