2013-08-13 2 views
0

У меня есть этот UIViewController с этим кодом в .m:Почему мой UIBarButtonItem не отображается в верхнем правом углу?

@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

Я просто хочу, чтобы появиться мое изображение, не то, что назад кнопка. Как удалить границу?

+1

попытайтесь поместить этот код в ViewDidLoad или ViewWillApear метода –

ответ

5

Во-первых, NIB не завершил загрузку при создании кнопки в initWithNibName и второй ваш UINavigationBar автоматически не использовать navigationItem (он автоматически используется навигационным контроллером). Если вы хотите добавить кнопку в свой navBar, вы должны сделать это в viewDidLoad.

+0

или awakeFromNib. или, если на то пошло, просто определите кнопку в nib/раскадровке и дайте ей автоматически подключиться. – TomSwift

+0

Хорошо, я переместил код в viewDidLoad, но он все еще не отображается. Свойство navbar подключено к навигационной панели в раскадровке. Он не является подклассом контроллера uinavigation, его подкласс UIViewController с навигационной панелью упал. – marciokoko

+0

Я получил его для работы, изменив его, установив свойство в navBar не в файле navigationItem. Остается только проблема: он отображается с границей по умолчанию вокруг него. Как я могу избавиться от этого? – marciokoko

1

Чтобы удалить границу создать свой UIBarButtonItem с UIButton customView

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; 
+0

Приятное время! ;) – nemesis

Смежные вопросы