0

外観をカスタマイズするためのすべての作業を行うために作成したクラスがあります。クラスはUIAppearanceデリゲートです。

UIのカスタマイズは現在、

  1. ナビゲーションバー
  2. 検索バー
  3. タブバー

これらの要素Viewsのいずれかに対して異なるスタイルを持っている可能性がある状況を予測できないため、これらの要素はすべて変化しません.

アプリケーション全体で使用できるように、どこにどのように配置すれば、どこからでもこれらのメソッドを呼び出す必要がなくなります (UI の微調整に影響を与えるための 1 回の呼び出し)。

  • サブクラス化によって ?
  • AppDelegate はこれの良い候補ですか?
  • サブジェクト クラスをインポートし、メソッドを手動で呼び出す

これらのカスタマイズを一度だけ行うことはできますか?

4

2 に答える 2

1

SharedManager のような singleTon クラスを使用できます。このオブジェクトをすべて作成すると、アプリケーション全体で使用できるようになります。

// ステップ 1: 「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 に答える
1

でこれを行うことができます-applicationDidFinishLaunching

UIKit クラスのようなクラス呼び出すと、外観プロキシが提供さUINavigationBarますappearance

[[UINavigationBar appearance] setTintColor:myColor];myColorすべてのナビゲーション バーの tintColor として設定します。

詳細については、UIAppearance のドキュメントを参照してください。

于 2013-03-24T09:27:05.493 に答える