在Swift中设置NavigationItem titleView Image全局

时间:2016-08-16 21:39:17

标签: swift uinavigationcontroller uinavigationbar

我正试图在我的应用程序中为我的导航控制器设置一个常量状态。我成功地在我的App Delegate中声明颜色并在应用程序中工作,但是我很难将徽标设置为titleView。我能够在个别视图控制器中轻松完成此操作,而不是全局。

以下是我的App代表中的内容:

    let logo = UIImage(named: "Logo")
    let imageView = UIImageView(image: logo)
    imageView.frame = CGRect(x: 0, y: 0, width: 0, height: 20)
    imageView.contentMode = UIViewContentMode.ScaleAspectFit

    // It's this line which errors and doesn't work
    navigationItem.titleView = imageView

更新

感谢下面的回答,我现在明白,这不可能如上所述。我已经将imageView的创建和设置放在一个全局函数中,然后在我需要的每个视图中只调用一行。我认为这比在每个视图上重写上述所有内容更有效。

1 个答案:

答案 0 :(得分:0)

AppDelegate没有名为navigationItem的成员变量,这是导致错误的原因。 navigationItem是UIViewController的成员变量,这就是为什么你能够在ViewControllers中使用它。来自Apple的文档:

  

这是UINavigationItem的唯一实例,用于表示   将控制器推入导航控制器时查看控制器。该   第一次访问该属性时,UINavigationItem对象是   创建。因此,如果不是,则不应访问此属性   使用导航控制器显示视图控制器。至   确保配置了导航项,您可以覆盖它   属性并添加代码以在第一次创建条形按钮项目时   访问或创建视图控制器中的项目   初始化代码。