Программный переход между двумя UIViewControllers (Xcode 9, Swift 4) - PullRequest
0 голосов
/ 28 июня 2018

Приложение, над которым я сейчас работаю, требует, чтобы я не использовал ЛЮБЫЕ раскадровки. Поэтому мне нужно все делать программно. Мне кажется, что я борюсь с одним переключателем между двумя UIViewControllers.

Проблема в том, что каждый раз, когда я вызываю метод self.present(); это создает совершенно новый экземпляр класса, который я хотел бы показать. Поэтому, когда я вхожу в визуальный отладчик Xcode, я вижу более 15 различных представлений, которые все сложены и являются просто экземплярами друг друга. Пример: View1, View2, View1, View2, View1, View2, View1 ... Это постоянное повторение представлений значительно снижает производительность моего приложения. Итак, мой вопрос:

Можно ли переключаться между двумя контроллерами UIViewController, не создавая постоянно новый экземпляр каждого из них?

Опять же, я делаю все это со ВСЕМИ раскадровками DELETED. Поэтому необходимое решение должно быть реализовано с использованием ТОЛЬКО кода.

Ответы [ 2 ]

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

Я думаю, что очень важно осознавать тот факт, что контроллер представления будет многократно отображаться в отладчике, потому что это может снизить производительность приложения. Мне очень нравится, как вы упоминаете это в своем комментарии. Это одно из основных отличий, которое может отличить вас от другого программиста в той же области. Одним из самых простых и простых способов решения этой проблемы является использование метода self.dismiss (). Другой способ отклонить этот контроллер представления - использовать контроллер навигации для решения этой проблемы. Контроллер навигации сместит контроллер основного вида с пути и не создаст несколько его экземпляров. Это будет наиболее эффективно, так как не требует большого количества кода и простой инициализации класса UINavigationController, реализованного в UIKit. Это один из самых важных инструментов и ресурсов, который вы должны использовать при написании кода в xcode и развитии своих навыков в области быстрого ios. Поскольку эта проблема не является одной из самых распространенных в Интернете, вам будет очень полезно опубликовать ее на этой странице форума, и она будет полезна для некоторых других программистов, которые не знают о таких методах и способах написания кода. Один из вопросов, который у меня к вам, заключается в том, что вы не хотите использовать раскадровки. Почему вы не хотите использовать раскадровки и делать их только для proGrAMitcally? Это один из тех вопросов, которые меня удивляют. Раскадровка - это реализация, которая позволяет пользователям xcode и swift очень легко обойти утомительную работу, которую необходимо выполнить при работе с аспектами кодирования. Это займет всего несколько строк кода, и вы можете сделать seGu очень легко. Переключение очень легко сделать, и вы можете найти этот метод на некоторых каналах YouTube. Для работы такого типа я рекомендую VigneshSriniswami Patel и ShaniLakshmiVishnuJiSwami, эти создатели контента помогут вам стать мастером xcode.

Надеюсь, я помог!

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

Я думаю, вы должны создать основной ViewController.

если вы сохраняете контроллер представления двух экземпляров, создайте два контроллера в mainViewController. Затем сохраните это в главном viewController.

И контроллер push view, который вы хотите представить в навигации контроллера основного вида. если вы хотите изменить поп-контроллер контроллера второго вида и нажать другой или просто нажать другой контроллер.

если вы хотите сохранить контроллер экземпляра, я думаю, что это лучший вариант для вас

...