iphoneobjective-ctoolbaritems

How do I remove a button from a view controller's toolbar on the iPhone?


I have code that works great for adding a button to the toolbar:

NSArray* toolbarItems = [NSArray arrayWithObjects:flexibleSpace,shuffleBarItem,flexibleSpace,nil];
self.toolbarItems = toolbarItems;

However, I also want to be able to remove toolbar items. When I use the below method, my application crashes:

NSArray* toolbarItems = [NSArray arrayWithObjects:flexibleSpace,nil];
self.toolbarItems = toolbarItems;

Does anyone know how I can dynamically alter the toolbar on the iPhone?

Thanks!


Solution

  • Change it into a NSMutableArray.

    NSMutableArray* _toolbarItems = [NSMutableArray arrayWithCapacity: 3]; 
    [ _toolbarItems addObjects: flexibleSpace,shuffleBarItem,flexibleSpace,nil];
    
    self.toolbarItems = _toolbarItems;
    

    When you want to remove items from the array:

    NSInteger indexOfItem = ...
    [ _toolbarItems removeObjectAtIndex: indexOfItem ];
    
    self.toolbarItems = _toolbarItems;
    

    Note that in this case you should not use removeObject since you have repeating objects in your array, and calling [ _toolbarItems removeObject: flexibleSpace ] will actually remove both instances of flexibleSpace in the array