2016-12-27 8 views
-2

Я начал создавать приложения Swift около 8 месяцев, а один из них имеет очень большую структуру со многими viewControllers и tableViews вместе с navbars в каждом из них.Упрощение кода, избегая копирования и вставки

После нескольких месяцев опыта, я обнаружил другие способы, чтобы упростить вещи, чтобы достичь более чистого кода через Protocols, container views и т.д.

Проект имеет 17 viewControllers где я скопировал и вставил большую часть tableViews с UITableViewDelegate и DataSource из общего файла в папке Resources. navbars, и весь код с его функциональностью также одинаковый в каждом viewController, повторяя один и тот же код снова и снова.

Есть ли способ, которым я мог бы реализовать все IBOutlets для каждого navbar и всех функций для каждого UITableViewDelegate без необходимости писать один и тот же код в каждом viewController?

Мое предположение - возможно, создать расширение и глобальные переменные или синглтон для tableView .. но как насчет navbars?

+1

Невозможно ответить, не взглянув на ваш проект ... и ответ будет основан на мнениях. – Moritz

+0

@Christian, вы должны предоставить дополнительную информацию и по крайней мере показать нам свою «раскадровку» и структуру каталогов вашего проекта. – aircraft

+0

Хорошо, я обновил вопрос, поскольку он основан прежде всего на мнениях. – Christian

ответ

1

Похоже, вы можете просто создать контроллер базового представления со всеми доступными функциями и макетами, и все контроллеры представлений, которые используют один и тот же вид таблицы и навигационную панель, могут наследовать от этого контроллера базового представления.

+0

Спасибо, я попробовал, что вы предложили, и он работает. Единственная проблема заключается в том, что когда я попытался добавить новый 'tableView', наследующий от' baseViewController', он не позволит мне, поскольку я использую 'extension' для' UITableViewDelegate' с этим 'baseViewController'. Но это неважно, просто пытаясь сжать мой код. – Christian

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