2016-12-10 2 views
2

Я довольно новичок в программировании Swift/iOS, но я часто набираю популярность.Использование заголовка панели навигации в качестве раскрывающегося списка в Swift

В частности, у меня есть панель навигации на одной из страниц моего приложения, в которой есть кнопка редактирования, чтобы редактировать представление таблицы, которое занимает большую часть страницы, и кнопку добавления, чтобы добавить новый элемент в представление таблицы. В настоящее время название просто говорит «Игроки», потому что таблица представляет собой список игроков, которые пользователь может ввести, чтобы быть включенными в список.

Я хотел бы титул быть больше выпадающего меню, которое может позволить пользователю просматривать несколько наборов данных, которые хранятся (например, несколько списков различных игроков.)

Я не могу представить много потому что пока нечего делать, поскольку я не знаю, с чего начать эту конкретную задачу. Весь мой текущий код в основном представляет собой только Outlets, Actions и пользовательские функции для других элементов пользовательского интерфейса на моей странице, которые не относятся к этой функции.

ответ

1

Поскольку ваш вопрос является «общим» по своей природе, но отсутствует конкретный код, я дам вам общий ответ с некоторыми ссылками, чтобы вы указали в правильном направлении.

Один из подходов - создать popover, который отображает UITableViewController. Вот tutorial from VEA Software, объясняющий, как создать popover.

Еще одна вещь, которую вам нужно будет знать, как сделать, чтобы передать информацию с вашего поппера UITableViewController до yourViewController - delegate methods. Вот хороший "quick and dirty" explanation of delegates.

В общем, что бы вы сделали, вы создали бы IBAction на yourViewController для своего выпадающего меню. Внутри этого метода, вы бы сказать yourViewController вы хотите непосредственно перейти с помощью следующей команды:

self.performSegue(withIdentifier: "popoverSegue", sender: sender) 

В вашем prepareForSegue методе на yourViewController, вы бы сделать конфигурацию, что вам нужно сделать, и передать то, что переменные, которые нужно пройдите к вашему попперу. Вы также захотите установить yourViewController в качестве делегата, отображаемого вами.

На вашем PopoverTableViewController вам необходимо заполнить его данными для вашего tableView. В вашем didSelectRowAtIndexPath вы захотите использовать методы делегирования, чтобы делать вещи на yourViewController.

Без конкретного кода я могу только сказать вам, что делать, и указывать на ресурсы для его выполнения. Надеюсь, это полезно.

+1

Представьте себе совершенно новое приложение с одним представлением с помощью только сценария диспетчера представлений, в котором панель навигации и табличный вид находятся в раскадровке. Предположим, что таблица и панель навигации правильно выведены и делегированы для использования внутри контроллера вида. вот и все. Я просто использую словарь для хранения ключа (имя группы) с массивом игроков, а в представлении таблицы просто отображается массив, основанный на выбранном ключе. Спасибо за ссылки, я буду исследовать дальше. Я ценю усилия! Я попал в upvote, но говорит, что он подсчет, но не будет отображаться. Надеюсь, это поможет! – kingfoot

Смежные вопросы