1

我想将状态栏的样式设置为:

 [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;

如果我直接从 AppDelegate 执行此操作 - 一切正常,但通过 Typhoon - 不是。

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];
}

在第二种方式我使用台风像:

@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 回答