#ios #uinavigationcontroller #uibutton
#iOS #uinavigationcontroller #uibutton
Вопрос:
У меня есть приложение для iPhone на основе master / detail. Как мне создать постоянную кнопку в нижней части навигационного контроллера без использования приложения в стиле навигации с вкладками (я хочу, чтобы она была в каждом представлении). Пожалуйста, сделайте каркас (это кнопка плюс). Я попытался добавить элемент панели кнопок на панель инструментов внизу, но по какой-то причине он не отображается. Я использую xcode 8 и ios 10.
для справки я создал пользовательский класс навигационного контроллера и вставил следующий код
#import "MainNavigationController.h"
@interface MainNavigationController ()
@end
@implementation MainNavigationController
- (void)viewDidLoad {
[super viewDidLoad];
NSLog(@"Testing");
// Do any additional setup after loading the view.
NSMutableArray *buttonsArray = [[NSMutableArray alloc] init];
UIBarButtonItem *myButton1=[[UIBarButtonItem alloc] initWithTitle:@"button 1" style:UIBarButtonItemStylePlain target:self action:@selector(toolbarButtonPressed1:)];
[buttonsArray addObject:myButton1];
UIBarButtonItem *myButton2 = [[UIBarButtonItem alloc] initWithTitle:@"button 2" style:UIBarButtonItemStylePlain target:self action:@selector(toolbarButtonPressed2:)];
[buttonsArray addObject:myButton2];
[self setToolbarItems:buttonsArray animated:YES];
[self.toolbar setBarStyle:UIBarStyleBlack];
[self.toolbar setItems: buttonsArray animated:NO];
}
Затем я делаю панель инструментов видимой в построителе интерфейса… панель инструментов отображается, и цвет задается в коде, но кнопки не отображаются
Комментарии:
1. «Я пытался добавить элемент панели кнопок на панель инструментов внизу, но по какой-то причине он не отображается» Если это решение подойдет, вы должны спросить себя, в чем причина . К сожалению, вы решили не показывать код, поэтому помочь невозможно.
2. Ваш код не имеет смысла. У навигационного контроллера нет элементов панели инструментов; у его дочерних элементов. Вам нужно будет установить
self.navigationItem.toolbarItems
все дочерние элементы этого навигационного контроллера. Мое решение, приведенное ниже, вероятно, лучше для вас.
Ответ №1:
Простым решением было бы встроить ваш UINavigationController в пользовательский родительский контроллер представления. Это означает, что представление навигационного контроллера является подвидом представления родительского контроллера представления. И это означает, что вы можете добавить еще один подраздел представления родительского контроллера представления, кнопку.
Комментарии:
1. Корневое представление на самом деле является контроллером разделенного представления, каким будет базовый класс для родительского представления?
2. «Корневое представление на самом деле является контроллером разделенного представления». В этом случае вы можете встроить свой контроллер разделенного представления в пользовательский родительский контроллер представления. В любом случае, это не редкость. Конечно, вам придется подумать о том, как вы хотите, чтобы этот интерфейс работал на iPad (расширенный контроллер разделенного представления).