0

このコードは、タブバーコントローラーが消えることを除いて、ビューコントローラーを切り替えるのに完全に機能します。
今、私はこのコードのさまざまなバリエーションを試しています

[self presentViewController:homeNavigationController アニメーション:NO 完了:nil];

しかし、どれも適切に機能していないようです。プッシュ コントローラーは、ビューを所定の位置に固定するだけです。何をすべきかについてのヒントはありますか?

 - (void)_tabBarItemClicked:(id)item {   
assert([item isKindOfClass:[UIButton class]]);



NSInteger selectedIndex = ((UIButton *)item).tag;

[self setSelectedIndex:selectedIndex];

[self _setSelectedItemAtIndex:selectedIndex];



NSDictionary *userInfo = @{@"index": [NSNumber numberWithInt:selectedIndex]};

[[NSNotificationCenter defaultCenter] postNotificationName:@"tabBarDidSelectItem" object:nil userInfo:userInfo];
if (selectedIndex ==2) {

    HomeViewController *homeViewController = [[HomeViewController alloc] initWithNibName:nil bundle:nil];
    UINavigationController *homeNavigationController = [[UINavigationController alloc] initWithRootViewController:homeViewController];

    [self presentViewController:homeNavigationController animated:NO completion:nil];

}}
4

2 に答える 2

1

私はこの問題を次のように解決しました:

1) AppDelegate で YourTabBarController オブジェクトを定義する

2) そして、'self' のような代わりに、YourTabBarController のオブジェクトから presentViewController

[appDelegateObj.yourTabBarObj presentViewController:homeNavigationController animated:NO completion:nil];];

Appdelegate オブジェクトが初期化されていることを確認してください。

于 2013-03-20T19:44:15.647 に答える
1

homeNavigationController をモーダルに表示しています。表示されているのは、モーダル ビュー コントローラの通常の動作です。つまり、タブ バーを含む画面全体を占有します。タブ バーを表示する場合は、モーダル プレゼンテーションを使用しないでください。

于 2013-03-20T18:26:14.297 に答える