Могу ли я создать глобальные IBOutlets и функции? - PullRequest
0 голосов
/ 12 июня 2018

Можно ли создать ссылку между ViewController.swift и отдельным файлом .swift, который я мог бы вызвать, скажем, UserInterfaceHandler.swift?

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

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

Я знаю, что на других языках вы можете, например, в PHP вы можете:

include('global_variables.php');

, а затем вызывать функцию или обращаться к переменным, установленным во внешнем файле..

Также в C # вы можете сделать что-то вроде:

GetComponent<ExternalScript>().functionName[orVariable]

Как я могу сделать что-то подобное в swift?

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

Я предполагаю, что пример того, что я хочу сделать:

Создание различных swift-файлов, которые могут содержать различные ресурсы (как .. UserInterface, GuestInterface, UserAnimations, GuestAnimations).

Таким образом, я мог бы в основном назвать каждое представление Меню, которое я создаю, как «Меню», и для доступа к каждому другому я мог бы использовать что-то вроде:

UserInterface.Menu.alpha = 0
GuestInterface.Menu.alpha = 1

То, как я это делаю сейчас, оставляет мне как минимум 1000 строк различных IBOutlets, переменных и второстепенных функций, что, честно говоря, сводит меня с ума.

Всего наилучшего, продолжайте пинать.

1 Ответ

0 голосов
/ 12 июня 2018

Спасибо @ NSNoob , ваш комментарий мне немного помог, но я не смог найти то, что мне было нужно с этой информацией.

Вместо этого я немного поигралвокруг, и я придумал следующее, если кому-то еще интересно.

fig a

Я создал 2 UIViews и назначил им каждый класс.

  1. Пользователь:

    класс Пользователь: UIView {

  2. Меню пользователя:

    класс UserMenu: UIView {

fig b

Теперь, если я нажимаю на кнопку A, следующий код запускается из ViewController.swift:

@IBOutlet weak var ButtonA: UIButton!
@IBAction func ButtonA(_ sender: Any) {
    print("Tapped Button 1")
    User().ShowMenu()
}

Который, в свою очередь, вызывает следующий код в User.swift:

func ShowMenu() {
    UserMenu().ShowMe()
}

Который, в свою очередь, вызывает следующий код в UserMenu.swift:

func ShowMe() {
    print("I am now being shown.")
}

Причина, по которой я былВ настоящее время я могу хранить все IBOutlets и переменные, относящиеся к каждому представлению, в его собственном файле swift, и я все еще могу работать в том же View Cont.roller Scene.

Теперь я могу использовать файл ViewController.swift в качестве обработчика логики базового уровня, чтобы решить, что еще делать.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...