0

アプリにトップバーを表示する次の関数があります。画像と UIBarButton で構成されます。viewWillAppear から呼び出します。現在のコントローラーを押して次のコントローラーに移動し、メイン コントローラーに戻ると、右のバー ボタンが消えます。助けてください。

-(void)setTopBar
{
    self.navigationController.navigationBar.tintColor =  [UIColor colorWithRed:0.6367 green:0.6367 blue:0.6367 alpha:1.0];
    UIImage *titleImage = [UIImage imageNamed: MAIN_TOPBAR];
    if([self.navigationController.navigationBar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)] ) {
        //iOS 5 new UINavigationBar custom background
        [self.navigationController.navigationBar setBackgroundImage:titleImage forBarMetrics: UIBarMetricsDefault];
   //     NSLog(@"loading nav items");
        UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithTitle:@"More Apps" style:UIBarButtonItemStylePlain target:self action:@selector(loadFAADAds)];
        rightButton.tag = 11111;
        self.navigationItem.rightBarButtonItem = rightButton;
        [rightButton release];

    } 
    else
    {
        CGRect titleFrame = self.navigationController.navigationBar.frame;
        UIImageView *titleImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0.0, 0.0, titleFrame.size.width,titleFrame.size.height)];
        [titleImageView setImage:titleImage];
        [titleImageView setTag:TOPBAR_TAG];

       // [self.navigationController.navigationBar sendSubviewToBack:titleImageView];
       // self.navigationItem.titleView = titleImageView;
        UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithTitle:@"More Apps" style:UIBarButtonItemStylePlain target:self action:@selector(loadFAADAds)];

        self.navigationItem.rightBarButtonItem = rightButton;

        //self.navigationController.navigationItem.rightBarButtonItem = rightButton;
        [self.navigationController.navigationBar insertSubview:titleImageView atIndex:0];
        [self.navigationController.navigationBar sendSubviewToBack:self.navigationController.navigationBar];
        [rightButton release];
    }
    [titleImage release];

}
4

1 に答える 1

-1
-(void)setTopBar
{
    self.navigationController.navigationBar.tintColor =  [UIColor colorWithRed:0.6367 green:0.6367 blue:0.6367 alpha:1.0];
    UIImage *titleImage = [UIImage imageNamed: MAIN_TOPBAR];
    if([self.navigationController.navigationBar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)] ) {
        //iOS 5 new UINavigationBar custom background
        [self.navigationController.navigationBar setBackgroundImage:titleImage forBarMetrics: UIBarMetricsDefault];
   //     NSLog(@"loading nav items");
        UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithTitle:@"More Apps" style:UIBarButtonItemStylePlain target:self action:@selector(loadFAADAds)];
        rightButton.tag = 11111;
        self.navigationItem.rightBarButtonItem = rightButton;
       // [rightButton release];

    } 
    else
    {
        CGRect titleFrame = self.navigationController.navigationBar.frame;
        UIImageView *titleImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0.0, 0.0, titleFrame.size.width,titleFrame.size.height)];
        [titleImageView setImage:titleImage];
        [titleImageView setTag:TOPBAR_TAG];

       // [self.navigationController.navigationBar sendSubviewToBack:titleImageView];
       // self.navigationItem.titleView = titleImageView;
        UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithTitle:@"More Apps" style:UIBarButtonItemStylePlain target:self action:@selector(loadFAADAds)];

        self.navigationItem.rightBarButtonItem = rightButton;

        //self.navigationController.navigationItem.rightBarButtonItem = rightButton;
        [self.navigationController.navigationBar insertSubview:titleImageView atIndex:0];
        [self.navigationController.navigationBar sendSubviewToBack:self.navigationController.navigationBar];
        //[rightButton release];
    }
//    [titleImage release];

}
于 2012-06-04T10:09:05.327 に答える