ナビゲーションベースのアプリを使用する以外に、ビューを変更する方法はありますか?最初のビューを基本的に単純なフォームにしたいのですが、ユーザーが「送信」ボタンを押したときに、戻ることができずにメインビューに送信したいと思います。また、ビューの上部にバーを配置したくありません。
どうすればこれを達成できますか。可能であれば、ナビゲーションベースのアプリに付属しているアニメーションを失うことはありません。
ナビゲーションベースのアプリを使用する以外に、ビューを変更する方法はありますか?最初のビューを基本的に単純なフォームにしたいのですが、ユーザーが「送信」ボタンを押したときに、戻ることができずにメインビューに送信したいと思います。また、ビューの上部にバーを配置したくありません。
どうすればこれを達成できますか。可能であれば、ナビゲーションベースのアプリに付属しているアニメーションを失うことはありません。
UIViewController クラスの説明の「presentViewController:animated:completion:」を見ましたか? 別のviewControllerでアニメーション化する方法には多くのオプションがあります。
Sled、UINavigationController の UINavigationBar を非表示にするだけです。
そうすれば、UINavigationBar が表示されず、ユーザーはそのページに戻ることができなくなります。
テキスト ファイルに書き込むか、NSUserDefaults を使用して、アプリに永続的なフラグを設定する必要があります。
アプリを完全にナビゲーション コントローラーから解放したい場合はpresentModalViewController:animated:
、親として最も適していると思われる UIViewController の署名の 1 つを使用できます。送信時に状態の変更を処理した後、子ビュー (送信するフォーム) を呼び出し[self dismissModalViewControllerAnimated:YES]
ます。これに関して注意すべきことの 1 つは、iOS 5 の時点で、Apple はpresentViewController:
代わりに使用することpresentModalViewController:
を推奨しており、将来の日付で非推奨とマークされています。
「ユーザーがフォームを送信したことをどのように知ることができるかという点では、フォームの状態を認識し続けるために委任/通知を使用することができます。子フォームが送信されると、parentViewController のデリゲート コールバックを呼び出してフラグを設定したり、たとえば AppDelegate または一部の高レベル クラスで認証データを返したりできます。 委任と通知は、iOS SDK を使用する場合に便利なツールです。
オプション 2 は、次のように、子を表示する呼び出しで完了ハンドラーを使用することができます。
ChildForm *childFormWithSubmit = [[ChildForm alloc] init];
[self presentModalViewController:childFormWithSubmit animated:YES
completion:^(/*inlineFunctionParams*/)
{ /*inlineFunctionBodyToRunOnCompletion*/ }];
可能性いっぱい〜