2010-11-18 9 views
3

私は、新しいコアデータ管理対象オブジェクトを作成し、必要なすべてのプロパティを入力し、オプションのプロパティも許可するビューを持っています。私はもともと左上に「完了」ボタンがあり、それが押されたときにオブジェクトを検証して保存してビューを削除しました。iPhoneビューの変更を「保存」してオブジェクトの「新規作成」する必要はありますか?

右上には編集/完了タイプが設定されているため、ビューの上部に2つの同一の「完了」ボタンが表示されることがあります。私はそれがちょうど通常の "戻る"ボタンを持っているように左のボタンを切り替えるし、何らかの形で検証し、検証されない場合、ビューが削除されないようにしたい。その戻るボタンで呼び出されたメソッドをキャプチャして変更する方法が見つからず、viewWillDisappearは機能しません。なぜなら、消滅を中止する方法がないからです。

どうすればこの作品を作成できますか?これを検証してから保存し、検証と保存が有効な場合はビューを削除する必要があります。

答えて

1

あなたのビューは、ナビゲーションコントローラのスタックではなく、モーダルにプッシュされるのに最適な候補です。

プッシュモーダルあなたNSManagedObjectを作成ビュー:

その後
[self presentModalViewController:yourViewController animated:YES] 

あなたが現在と検証が成功した場合だけで、あなたのオブジェクトを保存し、閉じて検証/編集するために、あなたの右上EDIT/DONEボタンを継続して使用します親ビューコントローラからモーダルビューコントローラ:

[[self parentViewController] dismissModalViewControllerAnimated:YES]; 

詳細については、チェックhttp://developer.apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/ModalViewControllers/ModalViewControllers.html#//apple_ref/doc/uid/TP40007457-CH111-SW14

まだ左手側のボタンを使いたいのであれば、右ボタンをEDIT/CANCELに変更して、左側にDONEボタンを追加することができます。このボタンは、EDITモードでは表示されません。適切な場合は、上記のコードを使用してモーダルビューを解除する前に、DONEボタンが同じ検証プロセスを実行するように指示することができますが、EDIT/CANCELボタンが対応していると考えられます。

こちらがお役に立てば幸いです。 Rog

+0

私はあなたの答えのバリエーションを使用しました。編集/完了ボタンを使って保存が最善の解決策になるようにしました。ありがとう。 –

1

UINavigationControllerという標準の戻るボタンを傍受する方法はありません。この機能が必要な場合は、カスタムボタンを使用してleftBarButtonItemをカスタマイズしてください。

ユーザーがそのボタンをタップすると、まずオブジェクトを検証してからpopViewControllerAnimated:を呼び出します。

組み込みの戻るボタンの外観を模倣するのは難しいですが、

関連する問題