Несколько элементов панели инструментов в одной строке
Я просто хочу создать несколько элементов панели инструментов в одной строке, вот что я сделал...
NSMutableArray *barButtonArray = [[NSMutableArray alloc] init];
for (int i=0; i<[[State getSubCategoryids] count]; i++) {
NSString *nameString = [NSString stringWithFormat:@"%@",[[State getSubCategoryNames] objectAtIndex:i]];
NSLog(@"nameString: %@", nameString);
UIBarButtonItem *customBarButton = [[UIBarButtonItem alloc] initWithTitle:nameString style:UIBarButtonItemStyleBordered target:nil action:@selector(productImages)];
UIBarButtonItem *flexItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace
target:nil
action:nil];
[barButtonArray addObject:customBarButton];
[barButtonArray addObject:flexItem];
[flexItem release];
[customBarButton release];
}
for (int i = 0; i<[barButtonArray count]; i++) {
NSLog(@"barbutton items for loop");
NSArray *items = [NSArray arrayWithObjects:[barButtonArray objectAtIndex:i],nil];
NSLog(@"items: %@", items);
[toolbar setItems:items animated:NO];
}
но ничего не отображается на панели инструментов...... какие-либо предложения...?
2 ответа
Решение
Для чего нужен второй цикл for?
У вас уже есть массив элементов (barButtonArray).
Замените второй цикл for следующим образом:
[toolbar setItems:barButtonArray animated:NO];
В вашем последнем цикле for вы перераспределяете массив элементов и снова и снова вызываете [toolbar setItems:]. Просто сделай это:
[toolbar setItems:barButtonItems animated:NO];