Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/103.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 伊巴布托主义消失_Objective C_Ios - Fatal编程技术网

Objective c 伊巴布托主义消失

Objective c 伊巴布托主义消失,objective-c,ios,Objective C,Ios,我有以下功能,显示我的应用程序上的顶部栏。它由一个图像和一个UIBarButton组成。我从视图中调用它。当我按下当前控制器并移到下一个控制器,然后移回主控制器时,右栏按钮消失。请帮忙 -(void)setTopBar { self.navigationController.navigationBar.tintColor = [UIColor colorWithRed:0.6367 green:0.6367 blue:0.6367 alpha:1.0]; UIImage *ti

我有以下功能,显示我的应用程序上的顶部栏。它由一个图像和一个UIBarButton组成。我从视图中调用它。当我按下当前控制器并移到下一个控制器,然后移回主控制器时,右栏按钮消失。请帮忙

-(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];

}

你留着吗?你为什么要在方法中发布它?从ViewDiUnloadUtiBarButtonItem*rightButton=[[UIBarButtonItem alloc]initWithTitle:@“更多应用程序”样式:UIBarButtonItemStylePlain目标:自我操作:@selector(loadFAADAds)];您不能释放
标题图像
,因为
图像名:
不会将所有权转移给您。但您必须释放
标题图像视图
。请重新阅读。此声明位于函数中,具有本地作用域。我无法在ViewDidUnLoad中释放它。但是,对于另一个控制器,我在ViewWillEnglish中执行以下操作:-(void)ViewWillEnglish:(BOOL)动画{//NSLog(@“disaper”);if([self.navigationController.navigationBar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)){}else{[[self.navigationController.navigationBar viewWithTag:TOPBAR_TAG]removeFromSuperview];self.navigationController.navigationBar.tintColor=nil;}[super ViewWillEnglish:NO];}我找到了与我所问问题相同的以下答案。我只想知道问题是您将按钮添加到了错误的位置。您不应该将按钮添加到导航控制器的导航项中,而是添加到导航控制器当前显示的控制器的导航项中
-(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];

}