У меня есть UINavigationController, который получает элемент DetailsViewController. В этом DetailsViewController я хочу использовать панель инструментов, которая поставляется с каждым UINavigationController (по крайней мере, с iPhone OS3.0).Элементы UIToolbar, которые не отображаются
Так, в viewDidLoad в моем DetailsViewController создать UIBarButtonItem, добавить его в массив и передать его в навигационном контроллере:
- (void) viewDidLoad {
UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemBookmarks target:self action:@selector(selectTemplate)];
NSArray *items = [NSArray arrayWithObject: item];
TestUIAppDelegate *delegate = [[UIApplication sharedApplication] delegate];
UINavigationController *navController = delegate.navigationController;
[navController setToolbarItems: items animated:NO];
[navController setToolbarHidden: NO animated: YES];
}
Но, по какой-то причине, в то время как UIToolbar анимированные на для экрана элемент не добавляется на панель инструментов.
Есть ли какой-то определенный порядок, который нужно делать с UIToolbar для этого?
P.S .: приложение находится в (принудительном) ландшафтном режиме, а navigationController.view имеет на нем поворотное преобразование. Может ли это иметь к этому какое-нибудь отношение?
Короткий комментарий - что распределение UIBarButtonItem выглядит он получит просочилась. Вероятно, вы должны установить его авторекламу. –
О, право. Но NSArray сохраняет его, поэтому я могу просто освободить _item_ после добавления его в массив вместо этого, правильно? – NSSec
Я сделал -1 на этом, потому что вы позволили вам отобразить его для этого одного диспетчера представлений, он не следит за всеми последующими контроллерами представлений через всю жизнь навигации ... это то, что большинство панелей инструментов не делают. – Jann