1

私は問題を抱えており、今日一日中解決策を見つけることができません。私はiPhoneSDKを初めて使用するので、何かが足りないと思います。

私のアプリは、3つのViewControllerを持つTabbedNavigationで構成されています。すべてが期待どおりに機能します。ここで、ユーザーがボタン(タブボタンではない...)をタブで移動したときに、(できればNIBから)新しいビューを開きたいと思います。ボタンのアクションメソッドは期待どおりに呼び出されます。ただし、新しい(テーブル)ビューが読み込まれません。

私はあなたに私の状況を説明するいくつかのコードを与えようとします:

まず、アプリケーションのデリゲートのdidFinishLaunchingWithOptionsで、tabBarControllerのビューをロードします(TabBarControllerはデリゲートのプロパティです)。

 // Add the tab bar controller's view to the window and display.
[window addSubview:tabBarController.view];
[window makeKeyAndVisible];

予想どおり、アプリがstartetの場合、TabControllerの最初のViewControllerが表示されます。このviewControllerには、ボタンのaction-methodが配置されるカスタムViewControllerクラスがあります。私のアクションメソッドは次のようになります。

-(IBAction)filtersButtonPressed:(id)sender {

  FiltersTableViewController *filtersViewController = 
    [[FiltersTableViewController alloc] initWithNibName:@"Filters" bundle:nil];

  [[[super tabBarController] navigationController] pushViewController:filtersViewController];
}

これは、どういうわけか、機能していません...もちろん、私はいくつかのことを試しましたが、成功しませんでした。

誰かが私を正しい方向に向けることができますか?ボタンを押すだけで新しいビューにたどり着くのはそれほど難しいことではありません...

前もって感謝します!

シェール、パウィ

4

1 に答える 1

0

新しい「フィルター」ビューをモーダル ビュー コントローラーとして表示することをお勧めします。コードを次のように変更してみてください。

-(IBAction)filtersButtonPressed:(id)sender {

   FiltersTableViewController *filtersViewController = 
      [[FiltersTableViewController alloc] initWithNibName:@"Filters" bundle:nil];
[self presentModalViewController:filtersViewController animated:YES];

これにより、現在のビューの上にあるフィルター ビュー コントローラーが上にスライドします (ただし、必要に応じてアニメーション効果を変更できます)。これを取り除くには、ユーザーがビューを終了したときに呼び出します。

[self dismissModalViewControllerAnimated:YES];

編集: ナビゲーション コントローラーを使用してビューをスタックにプッシュする場合は、使用します。

[self.navigationController pushViewController:filtersViewController];
于 2010-07-22T15:38:27.400 に答える