【问题标题】:Navigation Bar not showing Title when navigating between navigation controllers在导航控制器之间导航时导航栏不显示标题
【发布时间】:2021-03-01 17:57:50
【问题描述】:

我正在尝试构建一个集成了聊天选项的应用程序。我的对话视图控制器(一个人的所有聊天都显示在具有多个单元格的 tableView 中)嵌入在导航控制器以及单个聊天视图控制器(您只与一个人聊天)中。

要从对话视图控制器转到单个聊天视图控制器,我正在实现此代码:

let storyboard = UIStoryboard(name: "Main", bundle: nil)
        let _vc = storyboard.instantiateViewController(withIdentifier: "myNavigationController") as! UINavigationController
        _vc.title = "John Smith"
        _vc.modalPresentationStyle = .fullScreen
        present(_vc, animated: true, completion: nil)

但是,_vc.title 没有显示在导航栏上。我该如何解决这个问题?

【问题讨论】:

    标签: ios swift swift5


    【解决方案1】:
    _vc.navigationItem.title = "John Smith"
    

    使用导航项设置标题。

    【讨论】:

    • 这不起作用,因为 OP 存在视图控制器而没有导航控制器
    • 将呈现的控制器嵌入到导航控制器中。
    • 哦,我还以为是 VC。由于他给出了错误的名称转换所以
    【解决方案2】:

    你需要先创建一个 UINavigationController 的实例:

     UINavigationController *navController = [self.storyboard instantiateViewControllerWithIdentifier:@"Viewe"];
    ViewController2 *vc = (ViewController2 *) [navController topViewController];
    
    navController.modalPresentationStyle = UIModalPresentationFullScreen;
    
    vc.title = @"hello";
    

    并呈现该 navController 实例。

    【讨论】:

      【解决方案3】:

      你应该首先展示一个 VC,如果你正在考虑添加一个 VC,那么它会是这样的。

      在 Swift 中:


       let sb = UIStoryboard(name: "Main", bundle: nil)
       guard let vc = sb.instantiateViewController(withIdentifier: "SecViewController") as? SecViewController else { return }
       let navController = UINavigationController(rootViewController: vc)
       navigationController?.modalPresentationStyle = .fullScreen
       present(navController, animated: true)
      

      并在 SecViewController 的viewDidLoad 中给出 title = "John Smith"。这将帮助您添加标题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-24
        • 1970-01-01
        相关资源
        最近更新 更多