2012-03-04 12 views
5

AppContlegateクラスにView Controllerを追加しようとしています。私のコードはこのようになります。AppContlegateへのViewControllerの追加

[self.view addsubView:viewcontroller.view]; 

残念ながら私はコントローラビューを表示できません。私は間違ってどこかに行っていることをお勧めします。

AppdidFinishLaunchingにおける方法は次のとおりです。 -

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; 
    // Override point for customization after application launch. 
    self.window.backgroundColor = [UIColor whiteColor]; 
    // [self.window addSubview:videoController.view]; 
    self.window.rootViewController = videoController; 
    [self.window makeKeyAndVisible];  
    return YES; 
} 

とのViewControllerのロードビューでは、私はここでの問題は、私はボタンと表示することはできませんよです

UIButton *playMovie = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
playMovie.frame = CGRectMake(70,30,100,50); 
[playMovie setTitle:@"Play Movie" forState:UIControlStateHighlighted]; 
[playMovie addTarget:self action:@selector(playMovie:) forControlEvents:UIControlEventTouchDown]; 
[self.view addSubview:playMovie]; 

として書かれています助けてください。

答えて

9

ビューコントローラのビューを手作業でのようなインターフェイスに追加する必要はありません。アプリケーションデリゲート自体は、ビューコントローラではありません。そのため、viewcontrollerはその子ではありません。ビューはあなたのものではありません。ビューコントローラを正しく使用する:ビューコントローラは、あなたのアプリケーションウィンドウのrootViewControllerであるか、またはそれは他のビューコントローラの子であり、どちらの場合でもビューは自動的にインターフェイスに配置されます。

このビューがアプリケーションのルートビューである場合は、Xcode 4.2プロジェクトテンプレート(シングルビューアプリケーションなど)の操作を行います。ビューコントローラをインスタンス化し、self.window.rootViewControllerとして割り当てます。そうでない場合は、ビューコントローラを使用してサブビューとして追加する必要はありません。ビューコントローラを介在させずにビューを取得して追加するだけです。これは、ビューコントローラの私の章を読むためにあなたを助けるかもしれない

:それは私の作品の下にhttp://www.apeth.com/iOSBook/ch19.html

+0

、試してみてください。情報をありがとう。しかし、まだ私はビューコントローラをウィンドウに割り当てようとすると、私はviewcontrollerを見ることができません。助けてください。私はコードで質問を編集しています。私がどこかで間違っていると私に教えてください... –

+0

あなたは 'self.window.rootViewController = videoController'と言っていますが、あなたに' videoController'という値を割り当てているとは思われません。 View Controllerをインスタンス化することは決してありません。だからすべてが無味です。ビューコントローラもビューもないので、白いウィンドウになります。 – matt

+0

あなたの 'loadView'も正しく書かれていません。ドキュメント(と私がリンクしている章)を読んでください! 'loadView'ではビューを作成し、それを' self.view'に代入する必要があります。ビューに物事を追加する場所は 'viewDidLoad'です。 – matt

0

は、として非常に有用で上方に設けられた記述

SFRmbrVC *viewController=[[SFRmbrVC alloc]initWithNibName:@"SFRmbrVC" bundle:nil]; 
[self.window.rootViewController addChildViewController:viewController]; 
viewController.parentController = self.window.rootViewController; 
viewController.view.frame = self.window.rootViewController.view.frame; 
[self.window.rootViewController.view addSubview:viewController.view]; 
viewController.view.alpha = 0; 
[viewController didMoveToParentViewController:self.window.rootViewController]; 

[UIView animateWithDuration:0.25 delay:0.0 options:UIViewAnimationOptionCurveLinear animations:^ 
{ 
    viewController.view.alpha = 1; 
} 
       completion:nil]; 
関連する問題