にメッセージを送信し、我々はナビゲーションコントローラ[self.navigationController popViewControllerAnimated:YES];
にメッセージを送るプッシュビューを却下したときは、InterfaceBuilderでUIToolbarを追加し、ただのviewDidLoadでそれを隠すことができself.navigationControllerがnilでない場合あなたのViewControllerがnavigationcontrolの一部である場合は短絡します
- (void)didCancel {
[self.navigationController popViewControllerAnimated:YES] || [self dismissModalViewControllerAnimated:YES];
}
これ、それ以外dismissModalViewControllerAnimatedを使用します。
は却下については、次のようなものを持つことができます。
キャンセルボタンの場合にも有効です。 、あなたが置くことができ、その後、デリゲートの実装では
- (void)didSave {
// do your saving juju here
if([self.delegate respondsToSelector:@selector(viewController:didSave:]) {
[self.delegate viewController:self didSave:whatJustGotSaved];
}
[self.navigationController popViewControllerAnimated:YES]; // noop if currently modal
}
:あなたの保存ボタンの場合は、のようなデリゲートメソッドのいくつかの並べ替えを呼び出すのに便利です
- (void)viewController:(UIViewController*)viewController didSave:(NSObject*)whatJustGotSaved {
// do stuff with parameters
[self.modalViewController dismissModalViewControllerAnimated:YES]; // noop if not modal
}
押しの間、「物事が複雑」されているどのように正確にモーダルを提示する? –
編集された質問詳細 – trapper
私は、View Controllerがそれを解消する準備ができていることを示すプロトコルを許可するプロトコル(trapperViewDismisser)を定義することでそれにアプローチします。 次に、trapperViewDismisserに準拠し、delegateをselfに設定します。 VCを表示しているクラス(既に違いを知っているクラス)に差分を移動します。 – Thompsonian