0

У меня есть UINavigationBar, что я вручную перетащил и добавил в ViewController в своем раскадровке. Внутри этого NavigationBar я перетащил и добавил «UIBarButtonItem» в качестве стандартного «Добавить».Измените правый элемент BarButtonIt вручную добавленного UINavigationBar?

Взгляд подталкивается модально, поэтому он не имеет навигационной панели, которая автоматически подталкивается к ней.

И NavBar и BarButton связаны с моей ViewController и раскадровки, как так

@property (strong, nonatomic) IBOutlet UINavigationBar *RibbonDetailNavBar; 
@property (strong, nonatomic) IBOutlet UIBarButtonItem *addRemoveButton; 

я пытаюсь изменить изображение кнопки на другую по умолчанию, значок корзины, в viewDidLoad как так

if (alreadyAdded) 
{ 
    [self.navigationItem.rightBarButtonItem setStyle:UIBarButtonSystemItemTrash]; 
} 

Который не имел никакого эффекта.

Я также попытался это:

if (alreadyAdded) 
{ 
    _addRemoveButton = nil; 
} 

Что также не было никакого эффекта

, а также это:

if (alreadyAdded) 
{ 
    _addRemoveButton = [[UIBarButtonItem alloc]initWithImage:nil style:UIBarButtonSystemItemTrash target:nil action:nil]; 
} 

, которые также не имели никакого эффекта.

Как установить эту кнопку на значок корзины?

+0

Вы проверили (в 'viewDidLoad') в отладчике, что элемент кнопки, который вы пытаетесь установить, существует и действительно является стилем добавления? –

+0

Да. Он загружается и отображается правильно в приложении. Он называет соответствующий IBAction, подключенный к нему на TouchUpInside – DCIndieDev

ответ

1

UIBarButtonSystemItemTrash не может быть получен style. стиль типа UIBarButtonItemStyle, который может быть UIBarButtonItemStylePlain, UIBarButtonItemStyleBordered

Взгляда в documentation here

Используйте этого код

@property (strong, nonatomic) IBOutlet UINavigationBar *RibbonDetailNavBar; 
// No need to create rightBarButtonItem IBOutlet. 
if (alreadyAdded) 
{ 
    self.RibbonDetailNavBar.topItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem: UIBarButtonSystemItemTrash target: nil action: nil]; 
} 
else { 
    self.RibbonDetailNavBar.topItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem: UIBarButtonSystemItemAdd target: nil action: nil]; 
} 

Надеется, что это помогает. Счастливое кодирование! :)

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

  • Нет связанных вопросов^_^