0

TabBarItem(Email)を動的に追加しています。メールを読み終えたら、「dismissModalViewControllerAnimated」と呼んでいますが、メールビューを閉じているだけです。ビューコントローラをアンロードするにはどうすればよいですか?

私のEメールビューコントローラーでは、次のことを行っています。

- (void)viewDidLoad => I would like to unload this view controller
{
    [super viewDidLoad];
    [self showEMail:nil]; => this display and dismisses email (I'm not calling present.. and dismiss... in a row. I'm using delegate methods to present and dismiss, which is fine.)
                              [self presentModalViewController:picker animated:YES];
                              [self dismissModalViewControllerAnimated:YES];

}

タブバーの項目を選択すると、メールモーダルコントローラーを表示しているビューコントローラー(「ABCビューコントローラー」としましょう)が読み込まれます。メールモーダルコントローラーは適切に却下されています。しかし、「ABC View Controller」をアンロードした後、以前に選択したタブ項目に戻りたいと思います。出来ますか?または私はここで何か間違ったことをしていますか?

前もって感謝します

ラーマ

4

2 に答える 2

0

ラーマ、あなたの質問はわかりにくいです。提示しているView Controllerに委任を使用する必要があるかもしれません。

あなたのコードでは、 [self presentModalViewController...] と [self disconnectModalViewController...] を続けて呼び出すことは意味がありません。

最初に [self presentModalViewController...] を呼び出し、表示側のビュー コントローラーをデリゲートとして作成します (たとえば、picker.delegate = self)。

モーダルView Controllerに終了(ユーザーヒットのキャンセル、クローズなど)を含めてそのビジネスを行わせてから、委任メソッド([delegate didFinish ...]または[delegate didCancel ...]など)を呼び出します

今度は、提示側の View Controller が委譲メソッドの呼び出しに応答する番です。モーダル View Controller をここで閉じることができます。

注: UIAlertView、UIActionSheetView、MPMoviePlayerViewController など、多くの UIKit クラスがこのパターンを実践しています。それらを確認して、独自のものを作成する必要があります。

于 2012-04-15T03:02:02.323 に答える
0

ViewWiilAppear メソッドを使用してメールモーダルプレゼンターを表示することで問題を解決しました。

メールモーダルプレゼンターを閉じた後、タブバーコントローラーのインデックスを選択しています。

self.tabBarController.selectedIndex = 0;

これで私の問題は解決しました。

乾杯

于 2012-04-15T12:51:08.567 に答える