【问题标题】:Navigation Controller title image disappears导航控制器标题图像消失
【发布时间】:2017-08-15 01:53:35
【问题描述】:

我有一个嵌入到 NavigationController 中的 UITableViewController,见下文:

这是我在标题中添加图片的方式:

navigationItem.titleView = UIImageView(image: Views.navigationBarLogo)

但是,我有另一个 UITableViewController 以编程方式创建,当然导航控制器中的图像会消失,有没有办法在不重复上面的代码的情况下添加图像。

谢谢!

【问题讨论】:

标签: ios swift


【解决方案1】:

UINavigationItem 特定于单个视图控制器。做你想做的事情的唯一方法是创建一个设置 titleView 的基类,然后让导航控制器中的每个所需的视图控制器都从你的基类继承。示例基类:

class MyBaseClass: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        self.navigationItem.titleView = UIImageView(image: Views.navigationBarLogo)
    }
}

【讨论】:

  • 谢谢,从你的回答中,我可以想象的(因为我现在没有我的 mac)去我的应用程序委托并实例化我的 MybaseClass 和 @987654324 @ 并将它的根控制器设置为MyBaseClass。之后,我所有其他需要显示徽标的视图控制器都需要从MyBaseClass 继承。正确的?谢谢!~
  • 不需要实例化你的基类。只要确保你的导航控制器层次结构中的任何视图控制器,你想要显示你的titleView,子类你的基类。例如,你的类定义应该以这样的开头:class MyViewController: MyBaseClass
  • 您好,抱歉,我仍然对如何正确实现这一点感到困惑,能否请您显示我的一些代码,尤其是在应用程序委托中?谢谢!
  • 我不知道你为什么一直引用应用委托。你不需要碰它。看看这段代码:bitbucket.org/snippets/bdel23/695gdb.
  • MyTableViewController1 嵌入在故事板的导航控制器中。当在 MyTableViewController1 中点击一个单元格时,MyTableViewController2 被实例化并推送到导航控制器上。两个表视图控制器都是 MyBaseTableViewController 的子类,它在导航控制器上设置 titleView。
猜你喜欢
  • 2011-11-30
  • 2022-01-22
  • 2013-02-01
  • 2011-04-19
  • 2017-10-29
  • 1970-01-01
  • 2015-06-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多