0

では、この操作を実行するにはどうすればよいでしょうか。

  1. タブバーがあります
  2. タブ バーの 1 つのビュー コントローラーには、2 つのボタンがあります。
  3. ボタン1をクリックすると別の画面に移動するはずですが、下部にタブバーが必要です。
  4. button2 をクリックすると、別の画面が表示されますが、下部にタブ バーが必要です。

試してみました 1. presentModalViewController - しかし、それは画面全体をカバーするだけです 2. 2 番目の画面をサブビューとして最初の画面に追加しました。- これは、私が見たかった 2 番目のビューを示し、下部にタブ バーもありました。ただし、機能していませんでした。つまり、表示されるビューにスクロールビューなどが埋め込まれていましたが、サブビューとして追加するときにその機能はまったく機能しませんでした。

 @interface SettingsViewController : UIViewController <CLLocationManagerDelegate>
    @property (nonatomic,retain) UINavigationController * navigationController;

 - (void)viewDidLoad
{
    [super viewDidLoad];
    [self.view setBackgroundColor:[[ApplicationResources applicationResources]lightGreyColour]];
self.postCodeTextField.hidden = TRUE;
self.navigationController = [[UINavigationController alloc] initWithRootViewController:self];
   [self.view addSubview:self.navigationController.view];
//self.facebookSwitch
 }

それで、解決策は何ですか?ありがとう :)

4

1 に答える 1

3

presentModalViewController画面全体をカバーすることを正確に意図しています。

各タブにナビゲーション コントローラーが必要なようです。そのため、各タブには独自のナビゲーション スタックがあります。秘訣は、ナビゲーション コントローラーをタブ バーに追加してから、ビュー コントローラーをナビゲーション コントローラーに追加することです。

tabbar
|
+- navigationController1
|     |
|     +- myViewController1
|
+- navigationController2
      |
      +- myViewController2

上記のコードから、 UIViewController には既に という名前のプロパティがあるという点を見逃しているようです。navigationControllerそのため、自分で宣言しないでください。

ナビゲーション コントローラーを適切に設定するには、「ナビゲーション コントローラーを使用したタブ バー アプリケーション」を参照してください。

myViewController1のルート ビュー コントローラとして が正しく挿入されると、後続navigationController1のビュー コントローラを次のように簡単に表示できます。

//in myViewController1
[self.navigationController pushViewController:myViewController3 animated:YES];
于 2012-10-16T15:55:32.407 に答える