2016-09-18 3 views
0

Я пытаюсь добавить UINavigationBar программно и установить элементы панели. Я пробовал:Кнопка правого бара не отображается

self.artificialNavBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 44)]; 
    self.artificialNavBar.backgroundColor = [UIColor whiteColor]; 
    UIBarButtonItem *bbiDone = [[UIBarButtonItem alloc] initWithTitle:@"Готово" style:UIBarButtonItemStyleDone target:nil action:nil]; 
    UIBarButtonItem *bbiTry = [[UIBarButtonItem alloc] initWithTitle:@"Cancel" style:UIBarButtonItemStyleDone target:nil action:nil]; 
UINavigationItem *navItem = [[UINavigationItem alloc] init]; 

    navItem.leftBarButtonItem = bbiDone; 
    navItem.rightBarButtonItem = bbiTry; 

    self.artificialNavBar.items = @[ navItem ]; 
    [self.view addSubview:self.artificialNavBar]; 

Однако появляется только левая кнопка бар, правая скрыта. Я что-то пропустил?

+0

показать объявление 'искусственныйNavBar'. –

+0

@ Mr.UB (неатомный) UINavigationBar * искусственныйNavBar; –

+0

сделать это сильным. –

ответ

1

Объявить

@property (nonatomic, strong) UINavigationItem *navItem; 

в файле .h этого класса, в котором вы написали все это, а затем заменить код с кодом ниже.

self.artificialNavBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 44)]; 
self.artificialNavBar.backgroundColor = [UIColor whiteColor]; 
[self.view addSubview:self.artificialNavBar]; 

UIBarButtonItem *bbiDone = [[UIBarButtonItem alloc] initWithTitle:@"Готово" style:UIBarButtonItemStyleDone target:nil action:nil]; 
UIBarButtonItem *bbiTry = [[UIBarButtonItem alloc] initWithTitle:@"Cancel" style:UIBarButtonItemStyleDone target:nil action:nil]; 

self.navItem = [[UINavigationItem alloc] init]; 
[self.navItem setLeftBarButtonItem:bbiDone animated:NO] 
[self.navItem setRightBarButtonItem:bbiTry animated:NO] 

[self.artificialNavBar setItems:@[self.navItem] animated:NO] 

и убедитесь, что навигационная панель неатомная и сильная.

+0

им не используя раскадровка .. –

+0

без проблем. вы можете использовать этот код. просто удалите iboutlet .. это была ошибка. я обновил ответ –

+0

ОК, я пытаюсь, кстати, свойства по умолчанию сильно, если вы не укажете другие. –

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