2011-12-03 5 views
0

私はiPhone開発には初めてです。私はこのウィンドウのサブビューとしてウィンドウとナビゲーションコントローラを備えた単純なアプリケーションを構築しようとしました。問題はこれです:アプリケーションを起動すると、サブビューが読み込まれませんでした。私はちょうど黒い画面の窓があります。 View Controllerをロードするには、アプリケーションを終了してもう一度起動する必要があります。その後、ナビゲーションコントローラでサブビューする必要があります。私は黒い画面が問題ではないことを確認するためにウィンドウに直接ボタンを追加しましたが、起動時にボタンを見ました。私のアプリケーションの最初の起動時にサブビューが読み込まれなかった

これは私が私のAppDelegateに持っているコード:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]autorelease]; 
    [self.window addSubview:_navigationController.view]; 
    [self.window makeKeyAndVisible];  
    return YES; 
} 

あなたはこの問題のすべてのソリューションを持っていますか?

ありがとうございます。

答えて

2

ビュー階層設定があることを確認する必要があります。ウィンドウのrootViewControllerはUINavigationControllerになります。 UINavigationControllerはviewControllerの階層を制御するので、インスタンス化するときにはrootViewControllerを割り当てる必要があります。多くの場合、これはUITableViewのサブクラスです。

ウィンドウを割り当て/初期化しているので、UINavigationControllerを持つXIB/NIBと、UITableViewControllerのような関連するrootViewControllerがないと仮定しています。また、ナビゲーションコントローラのビューを追加するのではなく、rootViewControllerをウィンドウに割り当てる必要があります。 iOS4以来、これが好ましい方法です。 hereも参照してください。このコードを試してみてください。

YourViewController *yourViewController = /* code for alloc/initing your viewController */ 
_navigationController=[[UINavigationController alloc] initWithRootViewController:yourViewController ] 
self.window.rootViewController=_navigationController; /* instead of using [self.window addSubview: _navigationController.view] */ 
[self.window makeKeyAndVisible]; 

あなたが_navigationControllerがXIBファイルまで配線され、それがrootViewControllerだとしてのViewControllerのサブクラスがアップ有線たことを確認する必要があり、その後、XIB/NIBを使用している場合。

グッドラック

+0

ありがとうございます。しかしそれはまだ同じ問題です。 –

+0

UINavigationControllerをインスタンス化しましたか? – timthetoolman

+0

どこ?そして私はそれをどうやってやろうとしていますか? ありがとうございます。 –

関連する問題