2012-04-10 12 views
0

他にも同様の質問があり、それらをチェックアウトしましたが、どれも特定のものではないようです問題は、私と一緒に負担してください。"アプリケーションの起動時にルートビューコントローラが必要になる"というエラーがデバイスでのみ発生する

私はiPadのみで動作するはずのアプリケーションを開発しているので、普遍的なものはありません:MainWindow nibファイルはiPad用に設計されています。

Xcode(5.0と5.1の両方)からiPadシミュレータで実行している限り、すべて正常に動作します。しかし、実際のiPad(iOs 5.0)で実行しようとするとすぐに空白の画面が表示され、コンソール上に「アプリケーションの起動時にルートビューコントローラーがある」というメッセージが表示されます。ここで

は、関連する必要がありますいくつかのコードです:

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

... 
self.window.rootViewController = self.splitViewController; 
[self.window makeKeyAndVisible]; 

VistaInizialeViewController *inizialeAppoggio = [[VistaInizialeViewController alloc] initWithNibName:@"VistaInizialeViewController" bundle:nil]; 
self.vistaIniziale = inizialeAppoggio; 
[inizialeAppoggio release]; 
id debug = self.window.rootViewController; 
[self.window.rootViewController.view addSubview:self.vistaIniziale.view]; 
... 
debug = self.window.rootViewController; 

だから何を私に混乱していることは以下の通りです:私はシミュレータ上のステップによって、上記のステップを実行した場合、デバッグ変数(ルートビューコントローラ)があります初期化されたものであり、実際のデバイスで実行した場合は、まったく機能しません。

これは私からのものです。本当にありがとうございます。

ありがとうございました。

答えて

0

1)デバイスでは大文字と小文字が区別されますが、シミュレータでは区別されません。

nibファイルは、 'vistaInizialeViewController'や 'VistainizialeViewController'のようなものではなく、 'VistaInizialeViewController'と呼ばれていますか?

2)self.splitViewcontrollerがnilではないことを確認します。起動時にロードされたメインxibに正しいxibファイル名が指定されていることを確認します(コード内で生成する場合、それが正しく生成されていることを証明するために)

+0

いいえ、nibファイルは実際に "VistaInizialeViewController"と呼ばれています。これはコピー&ペーストのシーケンスからのものなので、私はそれを確信しています。 – FTSwift

+0

OK、私の編集した回答で提案番号(2)を試してください:) – deanWombourne

0

[OK]を解決しました。 私がやったことは、それはあまりにも実際のデバイス上で正しく動作するこれにより

UISplitViewController *splitAppoggio = [[UISplitViewController alloc] init]; 
CategoriesViewController *categorieVC = [[[CategoriesViewController alloc] init] autorelease]; 
DetailViewController *dettaglioVC = [[[DetailViewController alloc] init] autorelease]; 
categorieVC.detailViewController = dettaglioVC; 
UINavigationController *navVC = [[UINavigationController alloc] initWithRootViewController:categorieVC]; 
NSArray *arrayVC = [NSArray arrayWithObjects:navVC,dettaglioVC, nil]; 
splitAppoggio.viewControllers = arrayVC; 
splitAppoggio.delegate = dettaglioVC; 
self.splitViewController = splitAppoggio; 
[splitAppoggio release]; 

self.window.rootViewController

を設定する前に、次のコードを追加しました。 これはシミュレータ上で実行する必要はありませんでしたが、これはまだiPad上で実行するために必要ですが...

関連する問題