2009-06-09 13 views
1

私はiPhoneアプリで作業していますが、そこにデータ/情報を入力して保存するために、別のビュー/ウィンドウが必要です。iPhone app - 別のビューを追加

別のビューを追加するにはどうすればよいですか?私はそれをインタフェースビルダーに追加して、それをメインのアプリケーションデリゲートにリンクするか、独自の.hと.mファイルを持っていますか?

私は最初にウィンドウビューアプリケーションを選択しました。フリップサイドビューアプリケーションでやり直す必要がありますか、または正しいコードがあれば追加できます。

マニーのおかげ

カール

答えて

5

ウィンドウアプリがあなたのために最適です。あなたのAppDelegateファイルでは、このようなセクションを持っている必要があります。

- (void)applicationDidFinishLaunching:(UIApplication *)application {  

    //instantiate the venue view controller object 
    YourViewController *yourViewController = [[YourViewController alloc] initWithNibName:@"YourView" bundle:[NSBundle mainBundle]]; 

    // Configure and show the window 
    [window addSubview:[yourViewController view]]; 
    [window makeKeyAndVisible]; 

} 

これは、割り当てを宣言し、ウィンドウにカスタムビューを追加するコードの一部です。 2番目のビューを追加するには、いくつかの選択肢があります。この場所に追加するか、ナビゲーションコントローラを使用してこの場所の後に追加することができます。そして、そこ

- (void)applicationDidFinishLaunching:(UIApplication *)application {  

//instantiate the venue view controller object 
YourViewController *yourViewController = [[YourViewController alloc] initWithNibName:@"YourView" bundle:[NSBundle mainBundle]]; 
    UINavigationController *yourViewControllerWrapper = [[UINavigationController alloc] initWithRootViewController: yourViewController]; 



// Configure and show the window 
[window addSubview:[yourViewControllerWrapper view]]; 
[window makeKeyAndVisible]; 

} 

が、私たちはあなたのカスタムビューを作成するナビゲーションコントローラでそれをラップ:ナビゲーションコントローラを追加するには、次のように見えるように、上記の方法を変更します。ナビゲーションコントローラは、ウィンドウに追加されるものです。コードを使用すると、ボタンの押しでビューを切り替えると仮定すると、このようになります。2番目のビューに切り替えるには次へ:もちろん

-(IBAction)switchViewController{ 
    MySecondViewController *secondViewController = [[MySecondViewController alloc] init]; 

    [self.navigationController pushViewController:secondViewController]; 
} 

、あなたは適切な方法のでライン

MySecondViewController *secondViewController = [[MySecondViewController alloc] init]; 

を交換する必要があります2番目のView Controllerをインスタンス化します。これは上記のようなnibファイルからでもプログラムでも可能です。

ビューファイルを作成するまでは、すべてのレイアウト用のInterface Builderでペンを作成し、ViewControllerコード自体のファイル.h.mを作成する必要があります。

+0

ありがとうございました。これを試してみます – carl

1

新しいビューの代わりに新しいフレームを表示することもできます。それはあなたドンとして、時には簡単です; tはパラメータを渡す必要があります - あなたは1クラスである:

CGRect frame = okresView.frame; 
frame.origin.x = frame.size.width; 
if ([okresView superview] == nil) 
{ 
[self.view addSubview:okresView]; 
} 

okresView.frame = frame; 
[okresDataTableView reloadData]; // przeładowanie tabeli na subwidoku 

[UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationDuration:.5]; 
frame.origin.x = 0; 
okresView.frame = frame; 
[UIView commitAnimations]; 

を新しいサブビューをしたい場合、あなたはいくつかの方法を使用することができます - ちょうどXCodeのヘルプやチェックからいくつかのアプリケーションをダウンロードしてください彼らがどうやってこれを行うのか。良い例は、 'Elements'や 'UICatalog'アプリケーションにあります。ここでは、ビューやその他の例を反転しています。

//別のビューコントローラを作成してプッシュします。 UIViewController * myViewController = [[UIViewController alloc] init]; myViewController.title = @ "マイファーストビュー"; myViewController.view.backgroundColor = [UIColor redColor];

// UIViewをプッシュする。 [self.navigationController pushViewController:myViewController animated:YES];

関連する問題