-1

我将返回和下一个按钮设置为导航栏项目左按钮和右按钮。下面的代码为

 //  Back Button

UIBarButtonItem *aBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:aButton];

   [aButton addTarget:self action:@selector(navigatehome)forControlEvents:UIControlEventTouchUpInside];

self.navigationItem.leftBarButtonItem = aBarButtonItem;

//Next Button
 aBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:aButton];

[aButton addTarget:self action:@selector(navigatenext)forControlEvents:UIControlEventTouchUpInside];

[self.navigationItem setRightBarButtonItem:aBarButtonItem]

animated:YES声明中的问题

  CSA_info *h1=[[CSA_info alloc]init];
[self.navigationController pushViewController:h1 animated:YES];

它显示如下图

未显示按钮时的图像

如果使用animated:No则显示如下

在此处输入图像描述

我在导航栏中添加一个图像作为子视图,因此它隐藏了按钮。

 UIImage *image = [UIImage imageNamed:@"title bar.png"];
 UIImageView *imageView = [[UIImageView alloc] initWithImage:image]; 
 imageView.frame = CGRectMake(-5, 0, 330, 44); 
 [self.navigationController.navigationBar insertSubview:imageView atIndex:2];

我需要在导航中添加该图像。

为什么会这样,有什么帮助吗?

4

2 回答 2

1

如果我正确理解了您的问题,那么以下解决方案应该可以工作,

您需要在视图控制器的 viewDidLoad 方法中添加代码。请参考以下代码

UIButton *backButton = [[UIButton alloc] initWithFrame:kButtonFrame];
[backButton setImage:[UIImage imageNamed:kBackButtonImage] forState:UIControlStateNormal];
[backButton addTarget:self action:@selector(navigatehome)forControlEvents:UIControlEventTouchUpInside];

UIBarButtonItem *aBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backButton];
self.navigationItem.leftBarButtonItem = aBarButtonItem;

UIButton *nextButton = [[UIButton alloc] initWithFrame:kButtonFrame];
[nextButton setImage:[UIImage imageNamed:kNextButtonImage] forState:UIControlStateNormal];
[nextButton addTarget:self action:@selector(navigatenext)forControlEvents:UIControlEventTouchUpInside];

UIBarButtonItem *aBarButtonItemRight = [[UIBarButtonItem alloc] initWithCustomView:nextButton];
[self.navigationItem setRightBarButtonItem:aBarButtonItemRight];

即使您在推动视图控制器时进行动画处理,这也应该可以正常工作。

于 2013-05-02T04:05:05.653 回答
1

您需要将标题栏图像放在 secondViewcontroller 中,如下所示 ViewDidLoad

UIImage* imageback = [UIImage imageNamed:@"Back_Button.png"];
                CGRect frameimgback = CGRectMake(0, 0, 50, 30);
                backButton = [[UIButton alloc] initWithFrame:frameimgback];
                [backButton setBackgroundImage:imageback forState:UIControlStateNormal];
                [backButton addTarget:self action:@selector(Back)
                     forControlEvents:UIControlEventTouchUpInside];

                UIImage *image = [UIImage imageNamed:@"titileBar.png"];
                [self.navigationController.navigationBar setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];

                UIBarButtonItem *btn = [[UIBarButtonItem alloc]initWithCustomView:backButton];
                self.navigationItem.leftBarButtonItem = btn;
于 2013-05-02T09:10:19.800 回答