Я нахожусь в процессе создания достаточно сложного iPad-приложения, которое будет работать на iOS7 +. Приложение имеет экран входа в систему, к которому необходимо получить доступ после каждого сеанса пользователя, это начальный контроллер представления в моей раскадровке. Пользователь может выйти из любого другого экрана приложения (имеется около 60 других экранов), нажав кнопку, которая всегда доступна в любом другом ViewController. Когда пользователь выходит из системы, следует использовать настраиваемую анимацию перехода.Текущий контроллер просмотра без вызова presentViewController (или rejectViewController)
Кажется, я могу достичь этого одним из двух способов: либо с помощью экрана с каждого экрана в приложении на страницу входа в систему, что делает невозможным чтение раскадровки, либо presentViewController.
Я реализовал это с помощью presentViewController, просмотрев контроллер представления по id из раскадровки (который создает новый экземпляр, который является желаемым поведением), а затем представляет его из текущего контроллера представления.
Неудивительно, что это не отменяет исходный контроллер входа в систему и по существу создает стек контроллеров представления, в конце концов у меня заканчивается память, так как каждый раз, когда пользователь выходит из системы, создается и сохраняется новый контроллер входа в систему.
Есть ли способ очистить этот «стек» контроллеров вида?
Есть ли другой способ представить контроллер вида с анимацией, которая не включает в себя presentViewController или segues? Я рассмотрел сдерживание контроллера контроллера, но это не кажется правильным при использовании с раскадными версиями.
Я действительно смог сделать это в блоке завершения для presentViewController. Я пробовал это раньше, но, оказывается, у меня был цикл удержания где-то еще, что мешало моему предыдущему диспетчеру просмотра быть выпущенным. Я неправильно предположил, что удержание происходит от указателя к представлениюViewController в контроллере представления, который я представлял. –