引っ掛かりに遭遇し、ここでいくつかの洞察を期待しています。
概要: ユニバーサルアプリ。iPhoneの部分はうまく機能します。iPad部分にはスプリットビューコントローラーがあります。マスターは、ユーザーが行を選択してその詳細を表示するテーブルビュー(左側)です(右側)。かなり標準的なもの。
Xcodeバージョン4.4.1を使用しており、プロジェクトではCore Data、ストーリーボード、およびARCを使用しています。
DetailViewController: 詳細には、カスタムビューを使用して、日付ごとにユーザーノートの別のテーブルビュー(詳細内)を表示するボタンがあります。各メモには、画像を関連付けることができます。メモに画像がある場合は、写真アイコンの付いたボタンが表示されます。
この時点までのスクリーンショットの例:
MWPhotoBrowser: 写真アイコンのボタンを押すと、MWPhotoBrowser(標準的な方法で画像を表示するための素晴らしいライブラリ)を呼び出して、1つまたは複数の画像を表示します。シングルタップは選択された1つの画像を表示し、ダブルタップは現在のテーブル上のすべての画像を表示し、選択された画像が最初に表示されます。画像は全画面表示されます。
フォトブラウザを表示するには、次のコードを使用します。
// Create the browser view.
MWPhotoBrowser *browser = [[MWPhotoBrowser alloc] initWithDelegate:self];
// Set browser options.
browser.wantsFullScreenLayout = YES;
browser.displayActionButton = YES;
[browser setInitialPageIndex:self.buttonRow];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:browser];
[self presentModalViewController:navController animated:YES];
navControllerを使用すると、doneButtonPressedを呼び出す「Done」ボタンを備えたナビゲーションコントローラーを含めることができます。
問題: 「完了」ボタンを押すまで、上記のすべてがうまく機能します。フルスクリーンの写真ブラウザは適切に閉じます。残念ながら、ユーザーが写真アイコンボタンを押した右側のテーブルビューは表示されなくなりました(黒)。フォトブラウザがモーダルに閉じられた後も、NotesViewController(右側)はそこに残ると思いました。分割ビューでモデルViewControllerを呼び出すと、他のView Controllerが削除されますか?
問題を示すスクリーンショットの例:
詳細ビューコントローラ(右側)のスタックは、 DetailViewController> NotesViewController>である必要があり、MWPhotoBrowserをモーダルに呼び出します。写真ブラウザが閉じられた後、私のself.navigationController.viewControllers.countは1に等しく、2になると期待していました。
MWPhotoBrowserを閉じるコードは次のとおりです。
- (void)doneButtonPressed:(id)sender {
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
[self dismissViewControllerAnimated:YES completion:nil];
}
.
.
.
誰かが私の頭をこれに巻き付けるのを手伝ってくれることを願っています。
いつものように、どんな助けでも大歓迎です。ありがとう!