0

我在 .m 中有这个 UIViewController 和这段代码:

@property (nonatomic,strong) IBOutlet UINavigationBar *navBar;
@property (nonatomic,strong) IBOutlet UIBarButtonItem *button;

@end

@implementation DetailViewController

    - (void)viewDidLoad{
    [super viewDidLoad];
    // Do any additional setup after loading the view.

    UIBarButtonItem *listoButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"ListoBtn1.png"] style:UIBarButtonItemStyleBordered target:self action:@selector(done:)];

    self.navBar.topItem.rightBarButtonItem = listoButton;

    //self.navBar.topItem.backBarButtonItem = self.button;
    [self setVariables];

}

该按钮出现,但它看起来像这样:

barbuttonitem

我只希望我的图像出现,而不是那个后退按钮。如何删除它的边框?

4

2 回答 2

5

首先,当您在其中创建按钮时,NIB 尚未完成加载initWithNibName,其次您UINavigationBar不会自动使用navigationItem(导航控制器自动使用它)。如果你想将按钮添加到你的,navBar你应该在viewDidLoad.

于 2013-08-13T17:48:27.860 回答
1

要删除边框,请UIBarButtonItem使用UIButtoncustomView创建您的

UIButton *listoButton = [UIButton buttonWithType:UIButtonTypeCustom];
UIImage *listoButtonImage = [UIImage imageNamed:@"ListoBtn1.png"];
[listoButton addTarget:self action:@selector(done:) forControlEvents:UIControlEventTouchUpInside];
[listoButton setBackgroundImage:listoButtonImage forState:UIControlStateNormal];
listoButton.frame = CGRectMake(0, 0, listoButtonImage.size.width, listoButtonImage.size.height);
UIBarButtonItem *barButton = [[UIBarButtonItem alloc] initWithCustomView:listoButton];
self.navBar.topItem.rightBarButtonItem = barButton;
于 2013-08-13T20:45:50.387 回答