0

すべてのビューでタブバーを使用するiPhoneアプリケーションがあります。また、最初のビューコントローラにはnavigationBarControllerがありませんが、2番目のビューとタブバーにはあります。

2番目のViewControllerはテーブルビューであり、セルの1つをクリックすると、最初のView Controllerに移動します(パラメーターを渡します)。

私はいくつかの方法を試しましたが、すべてうまくいきましたが、そうではありません。

secondViewController.m
FirstViewController *firstViewController = [[FirstViewController alloc] initWithNibName:@"FirstView" bundle:[NSBundle mainBundle]];
[firstViewController passThisAlong:@"id"];

//[self presentViewController:firstViewController animated:YES completion:nil]; //1
[self.navigationController pushViewController:firstViewController animated:YES]; //2
//[self.tabBarController presentViewController:firstViewController animated:YES completion:nil]; //3
[firstViewController release];
firstViewController = nil;

上記のように、最初のViewControllerに到達するための3つの異なる方法を試しました。2番目のビューは最初のビューをロードし、2番目のビュー内にドリルダウンします。これは、nagigationBarController(最初のビューにはありませんが)と2番目のビューへの戻るボタンを保持するためです。

他の2つは互いに同じことをします。これは最初のビュー(ナビゲーションバーなし)に移動しますが、タブバーはなく、最初のビューのコンテンツはタブバーの高さの周りにシフトアップされており、その場所はただの黒さです。

これがすべて理にかなっていることを願っています。誰かがテーブル内のセルを選択したときの2番目のビューから、タブバーのアイコンをクリックしたかのように最初のビューに移動できるようにしたいだけです。

'On iPhone and iPod touch, the presented view is always full screen. On iPad, the presentation depends on the value in the modalPresentationStyle property.'これが私の問題に関連しているかどうか、もしそうなら、それを回避する方法があるかどうかわからないドキュメントを見てきまし た。

どうもありがとう、

4

2 に答える 2

1

これは正常です。モーダルビューはこのように機能するはずです。

Appleドキュメントから

ビューコントローラを表示する機能は、現在のワークフローを中断し、新しいビューのセットを表示するために自由に使用できるツールです。最も一般的には、アプリは、ユーザーから重要な情報を取得するために、一時的な中断としてViewControllerを表示します。ただし、提示されたView Controllerを使用して、特定の時間にアプリの代替インターフェースを実装することもできます。

didSelectRowAtIndexPathでは、次のようなものを使用できます。

YourAppNameDelegate *appDelegate = (YourAppNameDelegate *)[[UIApplication sharedApplication] delegate];
[appDelegate tabBarController].selectedIndex = 0;
于 2012-07-10T14:32:45.077 に答える
1

現在のモーダルビューはこのように機能します。そして、なぜタブベースのアプリケーションを使用できないのですか?

于 2012-07-10T14:39:02.177 に答える