2012-10-26 58 views
2

我一直試圖解決這個問題超過14個小時了...我真的希望有人可以請幫我加載我的故事板。每次我以非編程方式嘗試它時,它都會決定將它保留爲黑屏(並且不是加載屏幕,我檢查了它是否位於初始視圖控制器中,但沒有任何內容,所以我想,也許我需要要做到這一點編程,我已經合成了他們正確,你可以看到,仍然一無所獲。我在做什麼錯誤(沒有Xcode的錯誤輸出)。嘗試加載故事板時,Ios模擬器給了我一個黑屏?

Appdelegate.h

#import <UIKit/UIKit.h> 
@class ViewController; 
@interface AppDelegate : UIResponder <UIApplicationDelegate> { 
     UIWindow *window; 
    UIViewController *viewController; 
} 

@property (strong, nonatomic) UIWindow *window; 
@property (strong, nonatomic) UIViewController *viewController; 
@end 

AppDelegate.m

#import "AppDelegate.h" 
#import "ViewController.h" 


@implementation AppDelegate 

@synthesize window; 
@synthesize viewController=_viewController; 
- (BOOL)application:(UIApplication *)application 
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.window = [[UIWindow alloc] 
        initWithFrame:[[UIScreen mainScreen] bounds]]; 

self.window.rootViewController = viewController; 
    [self.window makeKeyAndVisible]; 
    return YES; 
} 
- (void)applicationWillTerminate:(UIApplication *)application { 
    // Save data if appropriate 
} 
+0

你使用的是Xcode 4.3.1嗎?或者用這個版本創建的UIViewController子類?升級到最新版本並檢查[' - (void)loadView'](http://stackoverflow.com/questions/9669995/black-screen-when-i-name-my-classes-in-story-boards/ 9670361#9670361) –

+0

我們可以刪除這個@property(強,非原子)UIWindow *窗口;從.h? –

回答

12

優秀教程如果您正在使用故事板,您應該刪除您在應用程序委託方法中編寫的代碼;改變它看起來像這樣:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    return YES; 
} 

在您的構建目標屬性接下來看看(在你的項目導航,點擊項目名稱在最高層)。您的故事板是否在「摘要」窗格的「主故事板」部分中選擇?

最後轉到故事板並確保您的視圖控制器被選爲初始視圖控制器。選擇視圖控制器場景並驗證屬性檢查器窗格中的「初始場景:是初始視圖控制器」框被選中。

如果所有這些步驟都已經過驗證,並且您仍然看到空白屏幕,則視圖控制器中可能存在錯誤。嘗試將一個全新的視圖控制器拖動到故事板,添加一個標籤,並將其設置爲初始視圖控制器。如果您能夠看到該場景啓動,那麼您的原始視圖控制器存在問題(而不是啓動故事板的問題)。

+0

好的,所以我刪除了你說的代碼,但是現在給我的錯誤「嘗試加載視圖控制器不在視圖層次結構中」?這一定是問題所在。我該怎麼做? – user1776234

+0

@ user1776234您是否可以剪切並粘貼整個錯誤消息? –

+0

[6553:c07]警告:嘗試在上呈現,其視圖不在窗口層次結構中! – user1776234

1

首先你的viewController屬性y只是一個零,它不會在任何地方初始化。有了這個self.window.rootViewController = viewController;你只需通過零至rootViewController

在Interface Builder中你應該有箭頭指示您的初始視圖控制器 - 這個picture或在屬性檢查器如所見到的看到here

您也可以閱讀故事板here