navigationItem.backBarButtonItem не работает? Почему предыдущее меню все еще отображается как кнопка?

Простой и сладкий: Консольные приложения (основные программы C с помощью printf и такой) легко и дешево сделаны с Крошечным компилятором C - никакой оборки, никакой gui, завершают компилятор C.

http://bellard.org/tcc/

Однако C разработка относительно прост на Visual Studio также. Следующие инструкции настроят Visual C++ как хороший компилятор C, и он произведет консольные приложения сначала и эй может переместиться вверх в более сложные приложения Windows, когда Вы идете.

  1. Получают выпуск C++ Visual Studio (экспресс прекрасен)
  2. , Запускаются, новый проект - отключают предварительно скомпилированные заголовки (возможно, мастер позволит Вам сделать это, возможно, необходимо будет измениться, параметры компилятора однажды в проекте)
  3. Удаляют все в проекте.
  4. Создают новый "example.c" файл с привет мировым примером
  5. Компиляция, и далеко Вы идете.

Поочередно, получите виртуальную машину Linux или Cygwin. Но поскольку у Вас уже есть Visual Studio, Вы могли бы также придерживаться с тем, что Вы знаете.

Как в стороне, это не Atwood, учащийся C наконец, не так ли? Никакие ВЫСОКИЕ ЗВУКИ!;-D

-Adam

25
задан shim 12 September 2017 в 16:05
поделиться

5 ответов

Это будет работать только для каждого потомка после viewController, который имеет self.navigationItem.backBarButtonItem.

28
ответ дан 28 November 2019 в 17:43
поделиться

self.navigationItem.backBarButtonItem для кнопки «назад», которая появляется на виде, который нажимается контроллером вида. Поэтому вам нужно переместить эту строку на предыдущий контроллер вида.

50
ответ дан 28 November 2019 в 17:43
поделиться

Вы не можете заменить backBarButtonItem, но вы можете использовать leftBarButtonItem, чтобы переопределить его. Но чтобы заставить новую кнопку работать так же, как кнопку «назад», вам нужно установить цель и действие новой кнопки примерно так:

- (void)dismissMyView {
    [self.navigationController popViewControllerAnimated:YES];
}

- (void)viewDidLoad {
    [super viewDidLoad];
    self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc]
        initWithTitle:@"Quit" style: UIBarButtonItemStyleBordered
        target:self action:@selector(dismissMyView)];
}
5
ответ дан 28 November 2019 в 17:43
поделиться

Вы путаете backBarButtonItem и leftBarButtonItem. Из UINavigationItem документов по backBarButtonItem:

Когда этот элемент является задним элементом панели навигации - когда это следующий элемент под верхним элементом - он может быть представлен в виде кнопки возврата на панели навигации. Используйте это свойство, чтобы указать кнопку возврата. Цель и действие элемента кнопки задней панели, который вы установили, должны быть равны нулю. Значением по умолчанию является элемент панели кнопок, отображающий заголовок элемента навигации.

Итак, если бы вы изменили:

self.navigationItem.backBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil] autorelease];

На:

self.navigationItem.leftBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil] autorelease];

Я думаю, вы получите желаемый эффект.

12
ответ дан 28 November 2019 в 17:43
поделиться

Если ViewController A нажимает ViewController B, в то время как мы хотим установить заголовок кнопки задней панели, мы должны установить «self.navigationItem.backBarButtonItem = ..». Если он был установлен в ViewController B, он не будет работать так, как мы хотим.

0
ответ дан 28 November 2019 в 17:43
поделиться