2012-01-30 5 views
0

私はこの二つを作成して設定されているアプリデリゲートにテーブルビューを含むビューコントローラを持っており、どのは、ナビゲーションコントローラ内にラップされ、すなわち:ユーザーが内の行をクリックするとビューコントローラは、ロード/アサート自体を中止する必要がありますか?

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:self.myViewController]; 
self.window.rootViewController = navController; 

テーブルには、その後、別のビューコントローラが作成され、ナビゲーションコントローラのスタックにプッシュされます。

[self.navigationController pushViewController:webPageController animated:YES]; 

webPageController負荷とローカルファイルを読み取ります。ファイルが見つからない場合は、webPageControllerの読み込みとそのビューの表示を中止し、テーブルビューを表示したいと思います。 これをどのように達成する必要がありますか?

webPageControllerが、私はそれのような様々なものを呼び出すの実験を試みた問題を検出した場合:ナビゲーションスタックから自分自身をポップするには

[self.navigationController popViewControllerAnimated:YES]; 

または

[self.navigationController.navigationBar popNavigationItemAnimated:YES]; 

を、しかしこれらは」上がりませんそれはナビゲーションコントローラがこのように自分自身をポップしようとするのは間違っていますか?これを実装する標準的な方法は何ですか?

ありがとうございます。

答えて

2

これで問題はありません。 popViewControllerAnimatedをどこで呼びますか: viewDidAppearより前に呼び出す場合は、問題が発生する可能性があります。 ViewControllerは、ポップやスタックへのプッシュを行う前に、表示を終了して消滅する必要があります。あなたがそれを前にするなら、あなたは本当に奇妙な結果を得ます。これの最も一般的な症状は動作しません。それの中のボタンはよく混乱するでしょう。

+0

ありがとうございました。 loadViewの最後で、viewDidAppearの前に呼び出されます。私は物事を再編成し、試してみます。しかし、viewDidAppearの後にそれ自身がポップすると、ユーザーは非常に迅速に表示/消滅することに気づくだろうか? viewDidAppearがビューが文字通り表示されたことを意味する場合、それは一時的に表示されますか? – Gruntcakes

+0

これは今動作しますが、テーブルビューは画面の半分にスライドして戻ってきますが、詳細コントローラのプッシュが成功するか失敗するかを事前に決定するためにテーブルビューコントローラを取得できるかどうか、それは私のカプセル化を破る可能性があります。 – Gruntcakes

関連する問題