3

iAdSuite の TabbedBanner の例に基づいてデザインを実装しています。最初のタブに UINavigationController があります。そのUINavigationControllerには、別のView Controllerにプッシュするボタンを持つView Controllerがあります。プッシュされたView Controllerは、Interface Builderでプッシュ時にボトムバーを非表示に設定されています。

UITabBarController を設定するコードを次に示します。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:[[NSBundle mainBundle].infoDictionary objectForKey:@"UIMainStoryboardFile"] bundle:[NSBundle mainBundle]];

    _tabBarController = [storyboard instantiateViewControllerWithIdentifier:@"TabBarController"];
    _tabBarController.delegate = self;

    FirstViewController *firstView = [storyboard instantiateViewControllerWithIdentifier:@"FirstViewController"];
    UINavigationController *firstNav = [[UINavigationController alloc] initWithRootViewController:firstView];

    _tabBarController.viewControllers = @[[[BannerViewController alloc] initWithContentViewController:firstNav], ];

    self.window.rootViewController = _tabBarController;
    [self.window makeKeyAndVisible];

    return YES;
}

次のView ControllerにプッシュしたときにTabBarが非表示にならないことを除いて、すべてが機能します。Interface Builderチェックボックスを使用してTabBarを非表示にしようとしましたが、nextViewController.hidesBottomBarWhenPushed = YESを使用してもうまくいきません。

BannerViewController の実装を削除すると、TabBar は正確に非表示になります。BannerViewController が、TabBar を非表示にできる UINavigationController に干渉しているように思えます。

このタイプのセットアップで TabBar を非表示にするために、Hides Bottom Bar When Pushed を使用することは可能ですか?

ありがとう

注: 上記のコードにはタブが 1 つしかないことに気付きました。わかりやすくするために、他のタブを削除しました。

4

1 に答える 1

1

これは、BannerViewController 自体が単なるコンテナーの viewController であり、実際に別のビュー コントローラーをプッシュすることがないために発生していると思います。ビュー コントローラーはコンテナー内にプッシュされます。

于 2014-09-19T16:14:03.650 に答える