0

我创建了一个类来完成自定义外观的所有工作。该类是UIAppearance委托的。

UI 定制目前影响,

  1. 导航栏
  2. 搜索栏
  3. 标签栏

所有这些元素都不会改变,Views因为我无法预见我可能对其中任何一个有不同风格的情况。

我可以在哪里以及如何将它放置在应用程序范围内,这样我就不必从任何地方调用这些方法(一次调用以影响 UI 调整)?

  • 通过子类化?
  • AppDelegate 是一个很好的候选人吗?
  • 导入主题类并手动调用方法

是否可以一次性调用这些自定义项?

4

2 回答 2

1

您可以在-applicationDidFinishLaunching.

当你调用时,UIKit 类UINavigationBar会给你一个外观代理appearance

[[UINavigationBar appearance] setTintColor:myColor];设置myColor为所有导航栏的 tintColor。

有关更多详细信息,请参阅UIAppearance 文档

于 2013-03-24T09:27:05.493 回答
1

您可以使用像 SharedManager 这样的 singleTon 类,在其中创建所有这些对象,它将在您的应用程序中可用。

// 第一步:创建一个名为“SharedManager.h”的文件

#import <Foundation/Foundation.h>

@interface SharedManager : NSObject
{
    UINavigationBar *navBar;
    UISearchBar *searchBar;
}

@property (nonatomic, retain) UINavigationBar *navBar;
@property (nonatomic, retain) UISearchBar *searchBar;

+(SharedManager *)sharedInstance;

@end

// 第 2 步:创建一个文件:“SharedManager.m”

#import "SharedManager.h"

static SharedManager *_sharedManager;
@implementation SharedManager

@synthesize navBar , searchBar;

+(SharedManager *)sharedInstance
{
    if(_sharedManager == nil)
    {
        _sharedManager = [[SharedManager alloc] init];

        // Create Navigation Bar
        _sharedManager.navBar = [[UINavigationBar alloc] init];

        // Create Search Bar
        _sharedManager.searchBar = [[UISearchBar alloc] init];
    }

    return _sharedManager;
}

@end

// 要访问对象,请使用以下代码,#import "SharedManager.h"

 [[SharedManager sharedInstance].navBar];

它将返回 NavigationBar 的对象

于 2013-03-24T12:22:46.010 回答