2012-11-29 173 views
0

有人可以幫我理解爲什麼insertobject atindex:0行不能添加任何東西到nsmutablearray中嗎?謝謝。nsmutablearray insertobject atindex:0不工作

- (void)setSplitViewBarButtonItem:(UIBarButtonItem *)splitViewBarButtonItem 
{ 
    if (_splitViewBarButtonItem != splitViewBarButtonItem) { 
     NSMutableArray *toolbarItems = [self.toolbar.items mutableCopy]; 
     if (_splitViewBarButtonItem) [toolbarItems removeObject:_splitViewBarButtonItem]; 
     if (splitViewBarButtonItem) { 
      [toolbarItems insertObject:splitViewBarButtonItem atIndex:0]; 
      NSLog(@"setSplitViewBarButtonItem: toolbarItems has %u objects",toolbarItems.count); 
     } 
     self.toolbar.items = toolbarItems; 
     _splitViewBarButtonItem = splitViewBarButtonItem; 
    } 
} 

工具欄早些時候在同一.m文件中定義從而

@property (nonatomic, weak) UIToolbar *toolbar; 

我也試圖與

NSMutableArray *toolbarItems = [[NSMutableArray alloc]init]; 
toolbarItems = [self.toolbar.items mutableCopy]; 

更換線

NSMutableArray *toolbarItems = [self.toolbar.items mutableCopy]; 

私有財產但仍然沒有什麼是adde d到toolbarItems。調試器始終顯示splitViewBarButtonItem爲非null,並且我的NSLog保持打印爲零。

非常感謝。

回答

0

我設法讓insertObject線通過更換如果(_splitViewBarButton)......與此

if (_splitViewBarButtonItem) { 
    toolbarItems = [self.toolbar.items mutableCopy]; 
    [toolbarItems removeObject:_splitViewBarButtonItem]; 
} else { 
    toolbarItems = [[NSMutableArray alloc]init]; 
} 

換句話說線,如果_splitViewBarButtonItem設置(有一欄按鈕)工作,將其刪除。否則,需要分配init它。現在

我的問題是分配

self.toolbar.items = toolbarItems; 

不工作和欄按鈕現在顯示出來的細節視圖。有什麼建議麼?

0

OK實際上我真正需要的是有我的工具欄屬性是一個IBOutlet,即改變

@property (nonatomic, weak) UIToolbar *toolbar; 

@property (nonatomic, weak) IBOutlet UIToolbar *toolbar; 

隨着這一變化,我最初發布代碼工作原樣。沒有定義爲IBOutlet時,我認爲工具欄沒有正確實例化。

相關問題