RootViewController im Storyboard aber wie Verknüpfen?

AdamB

Mitglied
Thread Starter
Dabei seit
10.08.2014
Beiträge
29
Reaktionspunkte
1
Hallo zusammen,

ich stehe vor einer weiteren Herausforderung die ich alleine nicht ganz lösen kann. Ich habe auf Github ein Projekt gefunden "Onboard" (https://github.com/mamaral/Onboard) und wollte es in mein Projekt integrieren / bzw. mein Projekt auf der basis von Onboard weiter ausbauen :) Nun in dem Projekt habe ich eine Storyboard und einen ersten ViewController mit einer dazugehörenden Klasse MainViewController.h/.m hinzugefügt, um weiter damit arbeiten zu können.

In dem GitHub Projekt ist eine AppDelegate.m Klasse die von der "Demo" zur eigentlichen View routet... hier der Code:

Code:
[COLOR=#78492A][FONT=Menlo]#import [/FONT][/COLOR][COLOR=#D12F1B][FONT=Menlo]"AppDelegate.h"[/FONT][/COLOR][COLOR=#D12F1B][FONT=Menlo][COLOR=#78492a]#import [/COLOR]"OnboardingViewController.h"[/FONT][/COLOR]
[COLOR=#D12F1B][FONT=Menlo][COLOR=#78492a]#import [/COLOR]"OnboardingContentViewController.h"[/FONT][/COLOR]
[FONT=Menlo]
[/FONT]
[FONT=Menlo][COLOR=#bb2ca2]static[/COLOR] [COLOR=#703daa]NSString[/COLOR] * [COLOR=#bb2ca2]const[/COLOR] kUserHasOnboardedKey = [COLOR=#d12f1b]@"user_has_onboarded"[/COLOR];[/FONT]
[FONT=Menlo]
[/FONT]
[COLOR=#BB2CA2][FONT=Menlo]@implementation[COLOR=#000000] AppDelegate[/COLOR][/FONT][/COLOR]
[FONT=Menlo]
[/FONT]
[FONT=Menlo]- ([COLOR=#bb2ca2]BOOL[/COLOR])application:([COLOR=#703daa]UIApplication[/COLOR] *)application didFinishLaunchingWithOptions:([COLOR=#703daa]NSDictionary[/COLOR] *)launchOptions {[/FONT]
[COLOR=#3D1D81][FONT=Menlo][COLOR=#000000]    [/COLOR][COLOR=#bb2ca2]self[/COLOR][COLOR=#000000].[/COLOR][COLOR=#4f8187]window[/COLOR][COLOR=#000000] = [[[/COLOR][COLOR=#703daa]UIWindow[/COLOR][COLOR=#000000] [/COLOR]alloc[COLOR=#000000]] [/COLOR]initWithFrame[COLOR=#000000]:[[[/COLOR][COLOR=#703daa]UIScreen[/COLOR][COLOR=#000000] [/COLOR]mainScreen[COLOR=#000000]] [/COLOR]bounds[COLOR=#000000]]];[/COLOR][/FONT][/COLOR]
[COLOR=#703DAA][FONT=Menlo][COLOR=#000000]    [/COLOR][COLOR=#bb2ca2]self[/COLOR][COLOR=#000000].[/COLOR][COLOR=#4f8187]window[/COLOR][COLOR=#000000].[/COLOR]backgroundColor[COLOR=#000000] = [[/COLOR]UIColor[COLOR=#000000] [/COLOR][COLOR=#3d1d81]whiteColor[/COLOR][COLOR=#000000]];[/COLOR][/FONT][/COLOR]
[FONT=Menlo]    [/FONT]
[COLOR=#008400][FONT=Menlo][COLOR=#000000]    [/COLOR]// determine if the user has onboarded yet or not[/FONT][/COLOR]
[FONT=Menlo]    [COLOR=#bb2ca2]BOOL[/COLOR] userHasOnboarded = [[[COLOR=#703daa]NSUserDefaults[/COLOR] [COLOR=#3d1d81]standardUserDefaults[/COLOR]] [COLOR=#3d1d81]boolForKey[/COLOR]:[COLOR=#4f8187]kUserHasOnboardedKey[/COLOR]];[/FONT]
[FONT=Menlo]    [/FONT]
[COLOR=#008400][FONT=Menlo][COLOR=#000000]    [/COLOR]// if the user has already onboarded, just set up the normal root view controller[/FONT][/COLOR]
[COLOR=#008400][FONT=Menlo][COLOR=#000000]    [/COLOR]// for the application, but don't animate it because there's no transition in this case[/FONT][/COLOR]
[FONT=Menlo]    [COLOR=#bb2ca2]if[/COLOR] (userHasOnboarded) {[/FONT]
[COLOR=#31595D][FONT=Menlo][COLOR=#000000]        [[/COLOR][COLOR=#bb2ca2]self[/COLOR][COLOR=#000000] [/COLOR]setupNormalRootViewControllerAnimated[COLOR=#000000]:[/COLOR][COLOR=#bb2ca2]NO[/COLOR][COLOR=#000000]];[/COLOR][/FONT][/COLOR]
[FONT=Menlo]    }[/FONT]
[FONT=Menlo]    [/FONT]
[COLOR=#008400][FONT=Menlo][COLOR=#000000]    [/COLOR]// otherwise set the root view controller to the onboarding view controller[/FONT][/COLOR]
[FONT=Menlo]    [COLOR=#bb2ca2]else[/COLOR] {[/FONT]
[COLOR=#31595D][FONT=Menlo][COLOR=#000000]        [/COLOR][COLOR=#bb2ca2]self[/COLOR][COLOR=#000000].[/COLOR][COLOR=#4f8187]window[/COLOR][COLOR=#000000].[/COLOR][COLOR=#703daa]rootViewController[/COLOR][COLOR=#000000] = [[/COLOR][COLOR=#bb2ca2]self[/COLOR][COLOR=#000000] [/COLOR]generateFirstDemoVC[COLOR=#000000]];[/COLOR][/FONT][/COLOR]
[COLOR=#008400][FONT=Menlo]//        self.window.rootViewController = [self generateSecondDemoVC];[/FONT][/COLOR]
[COLOR=#008400][FONT=Menlo]//        self.window.rootViewController = [self generateThirdDemoVC];[/FONT][/COLOR]
[COLOR=#008400][FONT=Menlo]//        self.window.rootViewController = [self generateFourthDemoVC];[/FONT][/COLOR]
[COLOR=#008400][FONT=Menlo]//        self.window.rootViewController = [self generateFifthDemoVC];[/FONT][/COLOR]
[FONT=Menlo]    }[/FONT]
[FONT=Menlo]    [/FONT]
[COLOR=#3D1D81][FONT=Menlo][COLOR=#000000]    application.[/COLOR][COLOR=#703daa]statusBarStyle[/COLOR][COLOR=#000000] = [/COLOR]UIStatusBarStyleLightContent[COLOR=#000000];[/COLOR][/FONT][/COLOR]
[FONT=Menlo]    [/FONT]
[COLOR=#3D1D81][FONT=Menlo][COLOR=#000000]    [[/COLOR][COLOR=#bb2ca2]self[/COLOR][COLOR=#000000].[/COLOR][COLOR=#4f8187]window[/COLOR][COLOR=#000000] [/COLOR]makeKeyAndVisible[COLOR=#000000]];[/COLOR][/FONT][/COLOR]
[FONT=Menlo]    [/FONT]
[COLOR=#BB2CA2][FONT=Menlo][COLOR=#000000]    [/COLOR]return[COLOR=#000000] [/COLOR]YES[COLOR=#000000];[/COLOR][/FONT][/COLOR]
[FONT=Menlo]}[/FONT]
[FONT=Menlo]
[/FONT]
[FONT=Menlo]- ([COLOR=#bb2ca2]void[/COLOR])setupNormalRootViewControllerAnimated:([COLOR=#bb2ca2]BOOL[/COLOR])animated {[/FONT]
[COLOR=#008400][FONT=Menlo][COLOR=#000000]    [/COLOR]// create whatever your root view controller is going to be, in this case just a simple view controller[/FONT][/COLOR]
[COLOR=#008400][FONT=Menlo][COLOR=#000000]    [/COLOR]// wrapped in a navigation controller[/FONT][/COLOR]
[COLOR=#703DAA][FONT=Menlo][COLOR=#000000]    [/COLOR]UIViewController[COLOR=#000000] *mainVC = [[/COLOR]UIViewController[COLOR=#000000] [/COLOR][COLOR=#3d1d81]new[/COLOR][COLOR=#000000]];[/COLOR][/FONT][/COLOR]
[COLOR=#D12F1B][FONT=Menlo][COLOR=#000000]    mainVC.[/COLOR][COLOR=#703daa]title[/COLOR][COLOR=#000000] = [/COLOR]@"Main Application"[COLOR=#000000];[/COLOR][/FONT][/COLOR]
[FONT=Menlo]    [/FONT]
[COLOR=#008400][FONT=Menlo][COLOR=#000000]    [/COLOR]// if we want to animate the transition, do it[/FONT][/COLOR]
[FONT=Menlo]    [COLOR=#bb2ca2]if[/COLOR] (animated) {[/FONT]
[COLOR=#3D1D81][FONT=Menlo][COLOR=#000000]        [[/COLOR][COLOR=#703daa]UIView[/COLOR][COLOR=#000000] [/COLOR]transitionWithView[COLOR=#000000]:[/COLOR][COLOR=#bb2ca2]self[/COLOR][COLOR=#000000].[/COLOR][COLOR=#4f8187]window[/COLOR][COLOR=#000000] [/COLOR]duration[COLOR=#000000]:[/COLOR][COLOR=#272ad8]0.5[/COLOR][COLOR=#000000] [/COLOR]options[COLOR=#000000]:[/COLOR]UIViewAnimationOptionTransitionCrossDissolve[COLOR=#000000] [/COLOR]animations[COLOR=#000000]:^{[/COLOR][/FONT][/COLOR]
[COLOR=#703DAA][FONT=Menlo][COLOR=#000000]            [/COLOR][COLOR=#bb2ca2]self[/COLOR][COLOR=#000000].[/COLOR][COLOR=#4f8187]window[/COLOR][COLOR=#000000].[/COLOR]rootViewController[COLOR=#000000] = [[[/COLOR]UINavigationController[COLOR=#000000] [/COLOR][COLOR=#3d1d81]alloc[/COLOR][COLOR=#000000]] [/COLOR][COLOR=#3d1d81]initWithRootViewController[/COLOR][COLOR=#000000]:mainVC];[/COLOR][/FONT][/COLOR]
[FONT=Menlo]        } [COLOR=#3d1d81]completion[/COLOR]:[COLOR=#bb2ca2]nil[/COLOR]];[/FONT]
[FONT=Menlo]    }[/FONT]
[FONT=Menlo]    [/FONT]
[COLOR=#008400][FONT=Menlo][COLOR=#000000]    [/COLOR]// otherwise just set the root view controller normally without animation[/FONT][/COLOR]
[FONT=Menlo]    [COLOR=#bb2ca2]else[/COLOR] {[/FONT]
[COLOR=#703DAA][FONT=Menlo][COLOR=#000000]        [/COLOR][COLOR=#bb2ca2]self[/COLOR][COLOR=#000000].[/COLOR][COLOR=#4f8187]window[/COLOR][COLOR=#000000].[/COLOR]rootViewController[COLOR=#000000] = [[[/COLOR]UINavigationController[COLOR=#000000] [/COLOR][COLOR=#3d1d81]alloc[/COLOR][COLOR=#000000]] [/COLOR][COLOR=#3d1d81]initWithRootViewController[/COLOR][COLOR=#000000]:mainVC];[/COLOR][/FONT][/COLOR]
[FONT=Menlo]    }[/FONT]
[FONT=Menlo]}[/FONT]

Wie in den Kommentierten Zeilen zu sehen ist, kann man die UIViewController*mainVC beliebig verknüpfen und das ganze wird in ein UINavigationController eingebettet, aber wie kann ich das mit dem UIViewcontroller aus/in der Storybord verknüpfen (kein NavigationController sondern normaler View)????

Was muss ich in der Zeile self.window.rootViewcontroller eingeben damit das ganze an SB anknüpft??? Ich bin echt am verzweifeln :confused: und am verhungern :d

Vielen Dank vorab für eure Hilfe...
und mit besten Grüßen aus Würzburg
Adam
 
Hi

Code:
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"DEIN-STORYBOARD-NAME" bundle:[NSBundle mainBundle]];
self.window.rootViewController = [storyboard instantiateInitialViewController]

dürfte die Lösung sein.
 
Zurück
Oben Unten