How to use multiple storyboards defined in assemblies?

abelorosz

I'm using different storyboards for different use-cases. My question is how can I instantiate a storyboard, a view controller by it's storyboard identifier and connect it to the actual viewcontroller class?

Here's where I am right now:

public dynamic func loadingViewController() -> AnyObject {
    return TyphoonDefinition.withClass(LoadingViewController.self) {
        (definition) in

        definition.injectProperty("presenter", with: self.loadingPresenter())
    }

//        return TyphoonDefinition.withFactory(self.storyboard(), selector: "instantiateViewControllerWithIdentifier:") {
//            (factory) in
//            
//            factory.injectParameterWith("LoadingViewController")
//            
//        }
}

public dynamic func storyboard() -> AnyObject {
    return TyphoonDefinition.withClass(TyphoonStoryboard.self) {
        (definition) in

        definition.useInitializer("storyboardWithName:factory:bundle:") {
            (initializer) in

            initializer.injectParameterWith("Loading")
            initializer.injectParameterWith(self)
            initializer.injectParameterWith(NSBundle.mainBundle())
        }

        definition.scope = TyphoonScope.Singleton
    }
}

In this example the storyboard's name is 'Loading', the viewcontroller is 'LoadingViewController' and the storyboard identifier is also 'LoadingViewController'.

Any help (or example code) would be appreciated!

Jasper Blues

To create a TyphoonDefinition representing a UIViewController that will be emitted from a storyboard:

Create a definition for the storyboard:

- (UIStoryboard *)storyboard
{
    return [TyphoonDefinition withClass:[TyphoonStoryboard class] 
        configuration:^(TyphoonDefinition *definition) {

        [definition useInitializer:@selector(storyboardWithName:factory:bundle:)
            parameters:^(TyphoonMethod *initializer) {
                [initializer injectParameterWith:@"StoryboardName"];
                [initializer injectParameterWith:self];
                [initializer injectParameterWith:[NSBundle mainBundle]];
            }];
    }];
}


If you'd like to instantiate the controller marked as the 'initial' controller in the storyboard:

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


If you'd like to instantiate another controller in the storyboard:

- (UIViewController *)arbitraryControllerFromStoryboard
{
    return [TyphoonDefinition withFactory:[self storyboard] 
        selector:@selector(instantiateViewControllerWithIdentifier:)

        parameters:^(TyphoonMethod *factoryMethod) {
            [factoryMethod injectParameterWith:@"ViewControllerId"];
        }];
}

Sorry for replying in Objective-C, but I haven't got my Swift chops on at the moment.

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

How to use Storyboards with multiple segues to one view controller?

From Dev

How to use Storyboards with multiple segues to one view controller?

From Dev

how to use a custom uitableviewcell for storyboards in swift

From Dev

PowerShell on Linux - How to load \ use .Net assemblies?

From Dev

PowerShell on Linux - How to load \ use .Net assemblies?

From Dev

Multiple storyboards: should I use a singleton pattern to cache them?

From Dev

Multiple storyboards: should I use a singleton pattern to cache them?

From Dev

How to connect multiple storyboards to single viewcontroler.swift file?

From Dev

Multiple storyboards in Swift

From Dev

Multiple Storyboards in WatchKit App

From Dev

State Restoration with Multiple Storyboards

From Dev

Using multiple Storyboards in Xcode

From Dev

Multiple storyboards not loading localization

From Dev

Connecting Multiple Storyboards in Swift

From Dev

UISplitView with multiple storyboards

From Dev

Multiple Storyboards in WatchKit App

From Dev

How do I use nibs/xibs alongside Storyboards?

From Dev

How to use a UITabBar with separate storyboards in iOS8/Swift?

From Dev

How to use UIViewControllerAnimatedTransitioning in Swift without Storyboards / Unwindng Segues?

From Dev

How do I use storyboards with spriteKit using swift

From Dev

Storyboards: How do I use the same view controller in several places?

From Dev

How to use UIViewControllerAnimatedTransitioning in Swift without Storyboards / Unwindng Segues?

From Dev

The same type is defined in two assemblies

From Dev

How to span C# namespaces over multiple assemblies?

From Dev

Multiple Storyboards - Multiple Navigation Controllers

From Dev

Multiple Storyboards - Multiple Navigation Controllers

From Dev

Opencover with multiple assemblies

From Dev

Performance hit of multiple assemblies

From Dev

ApplicationSettingsBase ConfigurationErrorsException multiple assemblies

Related Related

  1. 1

    How to use Storyboards with multiple segues to one view controller?

  2. 2

    How to use Storyboards with multiple segues to one view controller?

  3. 3

    how to use a custom uitableviewcell for storyboards in swift

  4. 4

    PowerShell on Linux - How to load \ use .Net assemblies?

  5. 5

    PowerShell on Linux - How to load \ use .Net assemblies?

  6. 6

    Multiple storyboards: should I use a singleton pattern to cache them?

  7. 7

    Multiple storyboards: should I use a singleton pattern to cache them?

  8. 8

    How to connect multiple storyboards to single viewcontroler.swift file?

  9. 9

    Multiple storyboards in Swift

  10. 10

    Multiple Storyboards in WatchKit App

  11. 11

    State Restoration with Multiple Storyboards

  12. 12

    Using multiple Storyboards in Xcode

  13. 13

    Multiple storyboards not loading localization

  14. 14

    Connecting Multiple Storyboards in Swift

  15. 15

    UISplitView with multiple storyboards

  16. 16

    Multiple Storyboards in WatchKit App

  17. 17

    How do I use nibs/xibs alongside Storyboards?

  18. 18

    How to use a UITabBar with separate storyboards in iOS8/Swift?

  19. 19

    How to use UIViewControllerAnimatedTransitioning in Swift without Storyboards / Unwindng Segues?

  20. 20

    How do I use storyboards with spriteKit using swift

  21. 21

    Storyboards: How do I use the same view controller in several places?

  22. 22

    How to use UIViewControllerAnimatedTransitioning in Swift without Storyboards / Unwindng Segues?

  23. 23

    The same type is defined in two assemblies

  24. 24

    How to span C# namespaces over multiple assemblies?

  25. 25

    Multiple Storyboards - Multiple Navigation Controllers

  26. 26

    Multiple Storyboards - Multiple Navigation Controllers

  27. 27

    Opencover with multiple assemblies

  28. 28

    Performance hit of multiple assemblies

  29. 29

    ApplicationSettingsBase ConfigurationErrorsException multiple assemblies

HotTag

Archive