Я пытаюсь использовать панель инструментов NavigationController в моем приложении.Элементы панели инструментов этой панели должны меняться в зависимости от того, какой контроллер представления представлен.это очень просто.
Я пытаюсь добавить пользовательские кнопки на панель инструментов с помощью метода initWithCustomView: UIBarButtonItem.Тем не менее, кнопка не будет отображаться на панели инструментов.Но если я создаю UIBarButtonItem, используя метод "initWithTitle:" или "initWithBarButtonSystemItem:", кнопка появляется.Например, посмотрите на код ниже:
UIBarButtonItem *item1 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem: UIBarButtonSystemItemBookmarks target:self action:nil];
UIBarButtonItem *item2 = [[UIBarButtonItem alloc] initWithTitle:@"edit" style:UIBarButtonItemStylePlain target:self action:nil];
NSArray *array = [[NSArray alloc] initWithObjects:item1, item2, nil];
[self setToolbarItems:array];
Если это будет сделано, на панели инструментов появятся кнопки.Но, если бы я сделал следующее:
UIButton* replyBtn = [UIButton buttonWithType:UIButtonTypeCustom];
[replyBtn setImage:[UIImage imageNamed:@"Reply_Message.png"] forState:UIControlStateNormal];
[replyBtn addTarget:self action:@selector(replyButtonTapped:) forControlEvents:UIControlEventTouchUpInside];
replyBtn.frame = CGRectMake(10, 0, 40, 40);
UIBarButtonItem *replyButton = [[UIBarButtonItem alloc] initWithCustomView:replyBtn];
UIBarButtonItem *item1 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem: UIBarButtonSystemItemBookmarks target:self action:nil];
UIBarButtonItem *item2 = [[UIBarButtonItem alloc] initWithTitle:@"edit" style:UIBarButtonItemStylePlain target:self action:nil];
NSArray *array = [[NSArray alloc] initWithObjects:item1, replyButton, item2, nil];
[self setToolbarItems:array];
В этом коде только item1 и item2 отображаются на панели инструментов.ReplyButton не отображается на панели инструментов.В месте, где должна находиться кнопка, есть свободное место.
Если этот же код используется на обычной панели инструментов, которую я создаю вместо панели инструментов NavigationController, кнопка отображается.Я пытаюсь использовать одну панель инструментов в приложении, чтобы почувствовать то же, что и приложение Apple Mail.Причина, по которой мне нужно использовать метод "initWithCustomView:", заключается в том, что один из значков окрашен, и только так он отображается на обычной панели инструментов.Теперь я просмотрел документацию Apple, и нет никаких упоминаний о том, почему не удалось вызвать метод initWithCustomView: (или, возможно, я не смог его найти).
Не мог бы кто-нибудь пролить свет на эту тему, чтобы помочь мне указать верное направление.заранее спасибо, ребята.