2009-04-09 9 views
0

カスケードモーダルビュー私が何をしようとしている

  1. 表示私はいくつかのユーザー入力
  2. 表示別のものを取得し、複数の入力
  3. を入力して、いくつかのものを行う取得モーダルビュー、 1から2までです。

問題は:presentModalViewController:animated:非ブロックです。つまり、私はステップ1をやり遂げることはできません。順次。私はそれを解決しようとした方法

ViewController0はViewController1を構築し、彼自身への参照を与え、その後、presentModalViewControllerを行います。アニメーション:. ViewController1はユーザー入力を収集し、次にViewController0のメソッドを呼び出します(参照があります)。このメソッドはViewController2を構築し、最初のものと同じように行います。 ViewController2はViewController0のメソッドも呼び出す(同じものでもよい)。恐ろしいハック(そこを行うには良い方法であることをを持っているように見えます

  1. :今ViewController0は、すべてのデータを持っている(または必要があります)と、このアプローチには3

    問題をステップに進むことができますそれ)。

  2. は動作しません。 :-)問題は、ViewController0がViewController2を表示しようとするときです。それも表示されません。私の前提は(私はiPhoneのプログラミングには新人ですが、これまでにいくつかのWindowsプログラミングを行っていました)、この操作は即座に行われるのではなく、WIN32のメッセージキューと同様の処理のためにどこかに投稿されていますViewController1を削除する操作!

したがって、私はこの問題を簡単な方法で解決するか、この方法で動作させることができますか?

答えて

1

私はこの問題の解決策をここに見つけました:http://forums.macrumors.com/showthread.php?t=513131(lawickoの答え)。

とにかくあなたの返信をありがとう。

+0

上記の答えの1つのメモ - VC1をVC0に戻すためにVC1を却下するには、VC2から行うことはできません!あなたはVC1に電話をする必要があります。それは自らを却下する必要があります... – ibz

0

2つのサブコントローラを含む単一のモーダルビューコントローラにすることができます。メインモーダルビューコントローラはUINavigationControllerにすることができます。これにより、2番目のサブコントローラがナビゲーションスタックにプッシュされるか、プレーンビューコントローラになり、サブコントローラのビューをプログラマブルにスワップできます。

あなたがやろうとしたやり方はうまくいくはずですが、ちょっとやっかいかもしれません。 2つ目のモーダルビューコントローラを表示する前に、最初のモーダルビューコントローラを解除するようにしてください。

+0

2つのモーダルをメインビューに表示するロジックは、常に両方を表示したいとは思っていません。時には最初のものだけ、場合によっては2番目のものもあります。したがって、私はあなたのソリューションが本当に好きではありません。しかし、それはオプションです。 – ibz

1

ViewController1から[self presentModalViewController:ViewController2]

私はアプローチの作品を知っているので、私はとVC0からモーダルビューコントローラを開始した、頼む:私は上記のようにやってVC1に

[self.navigationController presentModalViewController:VC1] 

そして一点。 2つ目のモーダルビューはオーバーレイとして表示され、閉じたときにVC1に戻ります。

+0

あなたの返事は良かったですが、私はまだVC1を却下してVC0に戻す必要がありました。私が言及した解決策を見つけ出すまで、私はかなり混乱しました。これは、VC1を直接却下することです - その場合、VC2は自動的に却下されます。 – ibz

関連する問題