全局添加UIImageView到UINavigationBar而不是标题

时间:2016-03-11 11:19:49

标签: ios swift uiimageview uinavigationbar

我想在我的应用程序的所有屏幕上全局使用徽标作为UINavigationBar的标题。如何访问AppDelegate中的导航栏?

enter image description here

3 个答案:

答案 0 :(得分:1)

如果您想影响整个应用程序,您应该在AppDelegate中使用外观代理。这样的事情应该这样做:

   Select 
    Sum(COALESCE([ShipAmt],0.00)) [ShipAmt],
    Sum(COALESCE([Total],0.00)) [Total]
    from
    (
        SELECT 
        [ShipAmt],
        [Total],
        [Cdate],
        CAST((DAY([Cdate])-1)/7   AS INT) +1 AS WeekNumber
        FROM ProductOrders
        WHERE MONTH([Cdate])=3
        -- This checks for month
        UNION 
        SELECT NULL as ShipAmt,NULL as Total,NULL as Date,1 as WeekNumber
        UNION 
        SELECT NULL,NULL,NULL,2
        UNION 
        SELECT NULL,NULL,NULL,3
        UNION 
        SELECT NULL,NULL,NULL,4
        UNION 
        SELECT NULL,NULL,NULL,5
        )
    as t1
    GROUP BY
    WeekNumber

答案 1 :(得分:0)

这就是我用过的东西

在App-delegate的 didFinishLaunchingWithOptions 方法中添加以下代码

UIImageView *imgView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"image_name_here"]];
[imgView setFrame:CGRectMake([UIScreen mainScreen].bounds.size.width/2,2,70,14)];
[imgView setCenter:CGPointMake(self.view.center.x,20)];
[self.navigationController.navigationBar addSubview:imgView];

或替代方式是

UIImage *image = [UIImage imageNamed:@"image_name_here"];
self.navigationItem.titleView = [[UIImageView alloc] initWithImage:image];

答案 2 :(得分:0)

这是不可能的。 titleView始终是UIViewController的本地。

但是,您可以:

  1. 创建UIViewController的子类,将self.navigationItem.titleView设置为该图像视图,然后从此类继承所有视图控制器。

  2. 创建UINavigationController的子类,为其提供一个自定义导航栏,其中始终显示徽标。然后,您将不得不使用此自定义导航控制器而不是UINavigationController

  3. 将其设置为导航栏背景图像。你实际上可以全局制作,但有时它不是一个选项(特别是如果你想保持默认的导航栏外观)。

  4. 当然,如果你使用的是storyboads / xib,你可以随身携带带有徽标的UIImageView