我正试图在我的应用程序中为我的导航控制器设置一个常量状态。我成功地在我的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的创建和设置放在一个全局函数中,然后在我需要的每个视图中只调用一行。我认为这比在每个视图上重写上述所有内容更有效。
答案 0 :(得分:0)
AppDelegate没有名为navigationItem的成员变量,这是导致错误的原因。 navigationItem是UIViewController的成员变量,这就是为什么你能够在ViewControllers中使用它。来自Apple的文档:
这是UINavigationItem的唯一实例,用于表示 将控制器推入导航控制器时查看控制器。该 第一次访问该属性时,UINavigationItem对象是 创建。因此,如果不是,则不应访问此属性 使用导航控制器显示视图控制器。至 确保配置了导航项,您可以覆盖它 属性并添加代码以在第一次创建条形按钮项目时 访问或创建视图控制器中的项目 初始化代码。