ナビゲーションコントローラに新しいビューを作成し、それを「上に」表示します(モーダル表示)。
ここにいくつかの重要な事があります:
あなたはモーダルナビゲーションコントローラを提示した場合、あなたは(必要であれば)それが&右のボタンを残って設定する必要があります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];
}
「サブビューとして」とはどういう意味ですか?元のUIViewControllerの一部とUINavigationControllerを表示しますか? Appleはこの種のことを警告している。あなたはこのようなことをすることができます - しかし、それがどうやって行われるか心配する前に、あなたが達成しようとしていることについて質問します。 – occulus
ここでは何をターゲットに設定していますか? iPadまたはiPhone? – occulus
現在のところ、iPhoneだけですが、iPadは結局のところです。私はあなたが意味するものを参照して、私は参照するオブジェクトを私のビューに追加する単なる普通の方法としてサブビューを追加することに言及した。しかし、私はこの新しいnavコントローラをプルアップするときに元のビューを表示する必要はありません、あなたは何を示唆していますか? –