2011-10-19 14 views
1

私は魅力を動作させる標準のUIViewControllerを持っています。しかし、これの上にUINavigationControllerをサブビューとして追加し、自由に追加して削除したいと思います。しかし、現在のコントローラに別のコントローラをサブビューとして追加することはできないようです。だから私はこれについてどうやって行くのですか?Main UIViewControllerの上にUINavigationControllerを追加しますか?

ありがとうございました。私はあなたが何をしているか分かりませんが

+1

「サブビューとして」とはどういう意味ですか?元のUIViewControllerの一部とUINavigationControllerを表示しますか? Appleはこの種のことを警告している。あなたはこのようなことをすることができます - しかし、それがどうやって行われるか心配する前に、あなたが達成しようとしていることについて質問します。 – occulus

+0

ここでは何をターゲットに設定していますか? iPadまたはiPhone? – occulus

+0

現在のところ、iPhoneだけですが、iPadは結局のところです。私はあなたが意味するものを参照して、私は参照するオブジェクトを私のビューに追加する単なる普通の方法としてサブビューを追加することに言及した。しかし、私はこの新しいnavコントローラをプルアップするときに元のビューを表示する必要はありません、あなたは何を示唆していますか? –

答えて

1

ナビゲーションコントローラに新しいビューを作成し、それを「上に」表示します(モーダル表示)。

ここにいくつかの重要な事があります:

あなたはモーダルナビゲーションコントローラを提示した場合、あなたは(必要であれば)それが&右のボタンを残って設定する必要がありますinitWithRootControllerとpresentModally前

もあなたならば「現在のビュー再あなたはモーダルそれを提示すれば、それはUINavigationcontrollerに包まれる必要がある、からNavControllerである(ことをカバーするいくつかのSOの記事があります)

UINavigationController with presentModalViewController

MyView *myView = [[MyView alloc] initWithNibName:@"MyView" bundle:nil]; 

UIBarButtonItem *cancelBtn = [[UIBarButtonImageItem alloc] init... 

UIBarButtonItem *doneBtn = [[UIBarButtonItem alloc] init... 

[[myView navigationItem] setLeftBarButtonItem:cancelBtn]; 
[[myView navigationItem] setRightBarButtonItem:doneBtn]; 
[cancelBtn release];  
[doneBtn release]; 

// Edit purchase in full modal view. 
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:myView]; 

[[self navigationController] presentModalViewController:navController animated:YES]; 

次に、モーダルで表示したビュー内から、それを閉じることができます。たとえば、このコードでは、上に追加された保存ボタンとキャンセルボタンが、あなたが提示したビューコントローラのIBActionメソッドに関連付けられています。

- (IBAction)cancel:(id)sender 
{ 
    NSLog(@"cancel"); 
    [self dismissModalViewControllerAnimated:YES]; 
} 

- (IBAction)save:(id)save 
{ 
    NSLog(@"done"); 
    // do work here 
    [self dismissModalViewControllerAnimated:YES]; 
} 
0

あなたは、しかしUINavigationControllerの場合とのViewControllerのビュー

[mainViewController addSubview:anotherViewController.view]; 

のサブビューとして別のコントローラビューを追加することができ、それは通常ではありませんあなたがしたいと思うもの。

あなたは-(void)presentModalViewController:animatedを見ましたか?

関連する問題