Как мне создать постоянную кнопку в нижней части навигационного контроллера?

#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 (расширенный контроллер разделенного представления).