2013-10-20 70 views
0

我設置設置FIrst視圖控制器將出現在我的應用程序啓動。它應該首次作爲教程出現,並且第二次出現在另一個標準視圖中。 在AppDelegate中我寫了這個:麻煩設置將出現在應用程序啓動使用故事板的第一個視圖控制器

#import "AppDelegate.h" 
#import "TabBarController.h" 
#import "TutorialController.h" 

@implementation AppDelegate 

@synthesize window; 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 

    if ([@"1" isEqualToString:[[NSUserDefaults standardUserDefaults] objectForKey:@"Startup"]]) { 

     TabBarController * viewControllerStandard = [[TabBarController alloc] init]; 
     window.rootViewController = viewControllerStandard; 

    } else { 

     TutorialController * viewControllerFirst = [[TutorialController alloc] init]; 
     window.rootViewController = viewControllerFirst; 
     } 

    [window makeKeyAndVisible]; 

    return YES; 
} 

它不返回任何警告,但推出的應用程序,啓動畫面之後,只出現黑屏。沒有這些代碼,一切正常。什麼可能是錯的?謝謝!

編輯:我正在使用故事板!

解決:Solved using followben's reply.

回答

1

需要初始化的視圖控制器。例如

#import "AppDelegate.h" 
#import "TabBarController.h" 
#import "TutorialController.h" 

@implementation AppDelegate 

@synthesize window; 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 

    if ([@"1" isEqualToString:[[NSUserDefaults standardUserDefaults] objectForKey:@"Startup"]]) { 

     TabBarController *viewControllerStandard = [[TabBarController alloc] init]; 
     window.rootViewController = viewControllerStandard; 
     [viewControllerStandard release]; //for non-arc 

    } else { 

     TutorialController * viewControllerFirst = [[TutorialController alloc] init]; 
     window.rootViewController = viewControllerFirst; 
     [viewControllerFirst release]; //for non-arc 

    } 

    [window makeKeyAndVisible]; 

    return YES; 
} 
+0

謝謝你,我嘗試,但它並沒有解決.. –

+0

打字self.viewControllerFirst代替TutorialController * viewControllerFirst它返回此錯誤:房產「viewControllerFirst」不是類型「的AppDelegate *」 –

+0

你似乎找到對象聲明上面的變量。如果您沒有將引用保留爲AppDelegate的屬性,那麼只需在初始化時在本地聲明該變量即可。我已經更新了上面的代碼。 – Joel

0

你不是instanciating viewControllerStandard。除非它是在Interface Builder中構建的,否則你需要這樣的東西。

self.viewControllerStandard = [[TabBarController alloc] init]; 
self.viewControllerFirst = [[TutorialController alloc] init]; 
[self.viewController setViewControllers:@[self.viewControllerFirst] animated:NO]; 
window.rootViewController = self.viewControllerStandard; 
相關問題