Тайфун Проблемы с раскадровкой

я пытаюсь создать экземпляр Initial ViewControllers вручную и зациклился на следующем.

Это работает:

-(TyphoonStoryboard *)storyboard {
    return [TyphoonDefinition withClass:[TyphoonStoryboard class] configuration:^(TyphoonDefinition* definition) {
        [definition useInitializer:@selector(storyboardWithName:factory:bundle:) parameters:^(TyphoonMethod *initializer) {
            [initializer injectParameterWith:@"Diary"];
            [initializer injectParameterWith:self];
            [initializer injectParameterWith:[NSBundle mainBundle]];
        }];

        definition.scope = TyphoonScopeSingleton;
}];
}

-(LADiaryMainViewController *)mainViewController {
    return [TyphoonDefinition withFactory:[self storyboard] selector:@selector(instantiateInitialViewController)];
}

а этот не работает:

-(TyphoonStoryboard *)storyboardWithName:(NSString *)name {
    return [TyphoonDefinition withClass:[TyphoonStoryboard class] configuration:^(TyphoonDefinition* definition) {
        [definition useInitializer:@selector(storyboardWithName:factory:bundle:) parameters:^(TyphoonMethod *initializer) {
            [initializer injectParameterWith:name];
            [initializer injectParameterWith:self];
            [initializer injectParameterWith:[NSBundle mainBundle]];
        }];
    }];
}

-(LADiaryMainViewController *)mainViewController {
    return [TyphoonDefinition withFactory:[self storyboardWithName:@"Diary"] selector:@selector(instantiateInitialViewController)];
}

Второй способ - сбои с: [__NSArrayM insertObject:atIndex:]: object cannot be nil


person plandem    schedule 10.06.2015    source источник


Ответы (1)


Упс.. Извините, factory definition с аргументом времени выполнения не поддерживается в Typhoon. Но... Мы добавили эту функцию для вас!

Проверьте версию Typhoon 3.1.9, теперь ваш код должен работать нормально.

person Aleksey    schedule 11.06.2015