0

我有一個UINavigationBar,我手動拖動並添加到我的故事板中的ViewController。在那個NavigationBar中,我拖動並添加了一個名爲「UIBarButtonItem」的默認「添加」圖像。更改手動添加的UINavigationBar的右邊BarButtonItem?

該視圖是以模態方式推送的,因此它沒有自動按下的NavigationBar。

無論是導航欄和BarButton連接到我的視圖 - 控制和像這樣

@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

是的。它加載並正確顯示在應用程序中。它會在TouchUpInside中調用連接到它的適當的IBAction – DCIndieDev

回答

1

UIBarButtonSystemItemTrash無法通過style屬性檢索。風格類型UIBarButtonItemStyle可以是UIBarButtonItemStylePlainUIBarButtonItemStyleBordered

查找到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]; 
} 

希望它可以幫助你的。快樂的編碼! :)