0

ナビゲーションベースのアプリを使用する以外に、ビューを変更する方法はありますか?最初のビューを基本的に単純なフォームにしたいのですが、ユーザーが「送信」ボタンを押したときに、戻ることができずにメインビューに送信したいと思います。また、ビューの上部にバーを配置したくありません。

どうすればこれを達成できますか。可能であれば、ナビゲーションベースのアプリに付属しているアニメーションを失うことはありません。

4

3 に答える 3

0

UIViewController クラスの説明の「presentViewController:animated:completion:」を見ましたか? 別のviewControllerでアニメーション化する方法には多くのオプションがあります。

于 2012-08-31T01:03:00.013 に答える
0

Sled、UINavigationController の UINavigationBar を非表示にするだけです。

そうすれば、UINavigationBar が表示されず、ユーザーはそのページに戻ることができなくなります。

テキスト ファイルに書き込むか、NSUserDefaults を使用して、アプリに永続的なフラグを設定する必要があります。

于 2012-08-31T01:08:33.393 に答える
0

アプリを完全にナビゲーション コントローラーから解放したい場合は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*/ }];

可能性いっぱい〜

于 2012-08-31T01:31:16.680 に答える