1

RSS フィードからの画像を表示する UICollectionView コントロールがある 2 番目のタブに 4 つのタブがある TabBar ベースのアプリを作成しています。

ユーザーが画像をクリックすると、別の UIViewController に表示され、その画像の詳細が表示されます。詳細ページのタブバーを非表示にしたい。私は多くの方法を試しましたが、うまくいきませんでした。

以下は、での選択に関する私のコードですUICollectionView

-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {

    DetailView *detail=[[DetailView alloc] init];
    detail.item= (MWFeedItem *)[itemsToDisplay objectAtIndex:indexPath.row];
    [self.navigationController pushViewController:detail animated:YES];
    [detail setHidesBottomBarWhenPushed:YES];
    [self.myCollectionView deselectItemAtIndexPath:indexPath animated:YES];
}

setHidesBottomBarWhenPushed:YES詳細ページに表示されるタブバーを詳細ページに設定しました。

ここで何か他のことをしなければなりませんか。

4

2 に答える 2

2

あなたDetailViewはそれを押し込むようにView Controllerself.navigationControllerです。

viewWillAppearViewController のandviewWillDisappearメソッドをオーバーライドしDetailViewます。NavigationController を TabBarController のビューの 1 つとして追加すると、にtabBarController属するビューコントローラーのスタック内のオブジェクトに直接アクセスできますNavigationController

次のコードを試してください:

-(void) viewWillAppear:(BOOL)animated {

    [super viewWillAppear:YES];

    // if you added bottom bar thr xib or thr code on DetailView VC, better if you remove it from DetailView xib
    [self setHidesBottomBarWhenPushed:YES]; 

    // this will hide the Tabbar  
    [self.tabBarController.tabBar setHidden:YES];
}

-(void) viewWillDisappear:(BOOL)animated{

    [super viewWillDisappear:YES];

    // this will show the Tabbar  
    [self.tabBarController.tabBar setHidden:NO];
}
于 2012-12-02T12:10:00.643 に答える
1

私の最初の答えはコメントに変換されました。それが短いので(外部サイトへのリンク以上のものはほとんどないと思います)!

ただし、最後のコメントで実際に必要なものについて詳しく説明しました。UITabBarの外観を変更する場合、この目的でUITabBarControllerをサブクラス化する必要はありません。必要なカスタマイズの範囲によって異なりますが、最初にAppleの「AppearanceAPI」を確認してください。これは、 iOS5でのユーザーインターフェイスのカスタマイズに関するRay Wenderlichのサイトからの良い記事です(iOS6にも適用され、サンプルプロジェクトが記事に含まれています)。

AppearanceAPIを介したタブバーのカスタマイズに関するもう1つの良い見方があります

于 2012-12-03T07:47:32.877 に答える