Подтвердить что ты не робот

Как добавить панель инструментов в нижней части UITableViewController в раскадровки?

В моем UITableView, который у меня установлен с помощью раскадровки, мне нужно добавить панель инструментов, которая придерживается нижней части представления, она не должна прокручиваться.

В отличие от этого вопроса: ССЫЛКА Я не думаю, что я мог бы добавить подсмотр TableView к нормальному виду, а затем просто добавить панель инструментов программно, потому что я использую динамические ячейки которые кажутся намного более легкими для интеграции через раскадровки.

Пока это то, за чем я застрял.... enter image description here

4b9b3361

Ответ 1

если вы хотите показать панель инструментов в одном контроллере представления, который помещен в некоторый контроллер навигации.

  • выбрать контроллер просмотра в раскадровке
  • в утилитах, покажите "инспектор атрибутов". выберите стиль "нижняя панель".
  • добавить элемент кнопки панели
  • добавить код в контроллер, показать и скрыть панель инструментов:

код:

- (void)viewWillAppear:(BOOL)animated
{
    [self.navigationController setToolbarHidden:NO animated:YES];
}

- (void)viewWillDisappear:(BOOL)animated
{
    [self.navigationController setToolbarHidden:YES animated:YES];
}

Ответ 2

Очень легко. Просто нажмите на контроллер навигации. Затем в Show Attributes Inspector затем щелкните контроллер, затем щелкните панель инструментов show. Проверьте снимок экрана.

Показать экранный снимок панели инструментов

Ответ 3

Для пользователей Swift вы можете использовать следующий код:

override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated);
    self.navigationController?.setToolbarHidden(false, animated: animated)
}

override func viewWillDisappear(animated: Bool) {
    super.viewWillDisappear(animated);
    self.navigationController?.setToolbarHidden(true, animated: animated)
}

Ответ 4

Это средство защиты работает для (2016) iOS 9.2. Мы все ненавидим, как Apple заставляет нас тратить время на то, что должно быть просто так. Мне нравятся пошаговые решения для этого типа глупых проблем, поэтому я поделюсь им с вами!:

  • Выберите контроллер View > Attribute Inspector > Выберите "Opaque Панель инструментов "
  • Теперь перетащите элемент "Панель" на свою раскадровку.
  • Выберите недавно сброшенный элемент "Барная кнопка" > "Инспектор атрибутов" > Значок системы > Выберите свой любимый значок.
  • В методе viewDidLoad() вашего контроллера просмотра добавьте этот код прежде всего:

    override func viewDidLoad(animated: Bool) {
        self.navigationController?.setToolbarHidden(false, animated: true)
    

    //остальная часть кода   }

  • Вы не хотите, чтобы панель инструментов висела в другом месте, поэтому добавьте это в свой вид скрыть его, как только текущее окно будет уволено:

-

 override func viewWillDisappear(animated: Bool) {
                super.viewWillDisappear(animated);
                self.navigationController?.setToolbarHidden(true, animated: animated)

        }

Voila!

Ответ 5

  • Перетащите UIViewController в раскадровку
  • Перетащите UIToolbar поверх содержимого раскадровки.
  • Перетащите UITableView поверх содержимого раскадровки.
  • Свяжите делегат таблицы и источник данных с исходным кодом.

Хотя вы не сможете использовать UITableViewController, так как ваш шаг 4-го класса связывания позволит вам связать его с обычным UIViewController.

Вам понадобится что-то подобное в заголовке, но

@interface MyViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>

В вашем раскадровке будет выглядеть примерно так:

enter image description here

Ответ 6

Я использовал промежуточный View Controller с представлением контейнера к таблице. Добавьте представление панели инструментов к промежуточному элементу и сделайте его выглядящим, как вы хотите (используйте UIButtons вместо UIBarButtonItem).

Если вы это сделаете, растяните контейнерный вид вверху экрана, а не внизу панели навигации, или вы вытянете волосы, пытаясь правильно вставить вставки прокрутки.

Некоторые подробности в аналогичном вопросе fooobar.com/info/148277/...