1

ステータスバーのスタイルを次のように設定したい:

 [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;

AppDelegate から直接実行している場合 - すべて問題ありませんが、台風経由 - ではありません。

1)それはうまくいっています:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [[self styleKit] apply];
    [self.window makeKeyAndVisible];
    return YES;
}

2)そして、それは機能していません:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    return YES;
}

-(void)initialize {
    [[self styleKit] apply];
    [self.window makeKeyAndVisible];
}

2番目の方法では、台風を次のように使用します。

@implementation LAMainAssembly
-(AppDelegate *)appDelegate {
    return [TyphoonDefinition withClass:[AppDelegate class] configuration:^(TyphoonDefinition *definition) {
        [definition injectProperty:@selector(window) with:[self mainWindow]];
        [definition injectProperty:@selector(styleKit)];
        [definition performAfterInjections:@selector(initialize)];
    }];
}
@end

どちらの場合も、同じ高度なバージョンのスタイリングを使用します。

[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
4

1 に答える 1

2

Typhoon が の前に初期化を開始したためだと思いますdidFinishLaunchingWithOptions

初期化順序への依存を避け、メソッドが呼び出されTyphoonた後に UI セットアップを明示的に行うことをお勧めしdidFinishLaunchingWithOptionsます (最初の方法)。

于 2015-06-14T16:29:14.333 に答える