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

#ios #objective-c #uiviewcontroller #viewstate #user-interaction

#iOS #objective-c #uiviewcontroller #viewstate #взаимодействие с пользователем

Вопрос:

Мне нужны некоторые подсказки или предложения по проблеме.

Что я хочу сделать, так это «свернуть» UIViewController как «круги сообщений» в старых сообщениях Facebook. Чтобы пользователь мог продолжать использовать приложение, просто переместите круг в любое место экрана, а затем коснитесь его, чтобы открыть и продолжить работу оттуда.

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

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

Надеюсь, кто-нибудь сможет мне помочь.

Спасибо

редактировать: Спасибо Moti. Хорошо, поэтому я не буду использовать раскадровку, но сделаю все программно. Я сделаю так, чтобы он не был полностью скрыт, а «свернут» в виде верхнего круга, к которому можно получить доступ, просто нажав на него в любом месте приложения.

Трюк14, у меня будет проверка. tnx

Комментарии:

1. Вы имеете в виду заголовок чата? На github есть хороший источник

Ответ №1:

Создайте базовый контроллер просмотра, который наследуется каждым ViewController в вашем приложении. Объявите функции в нем. И вы можете напрямую обращаться к этим функциям в любом из вашего базового класса. Или просто скрыть или показать свой вид в любом месте вашего приложения.

Ответ №2:

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

Если вы можете описать некоторые дополнительные детали относительно того, как вы показываете / скрываете, и является ли это частью раскадровки или встроено во время выполнения, сообщество сможет быть более конкретным в отношении решений.

Если вы заглянете в UIViewController , вы увидите

addChildViewController:

removeFromParentViewController

willMoveToParentViewController:

didMoveToParentViewController:

Вы можете поиграть с ними, чтобы достичь того, что вам нужно, например, когда вы обнаружите, что контроллер «overlay» удален из родительского контроллера просмотра, вы можете вернуть его обратно в метод didMoveToParentViewController: другого контроллера.

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

Комментарии:

1. Если я вас правильно понял, вы хотите, чтобы view controller всегда был самым верхним (когда «обведен»)?