У меня сложилось впечатление, что вы уже решили, куда вы хотите поместить логику, чтобы решить, показывать ли тот или иной вид.viewWillAppear, скорее всего, не в том месте, потому что ваш xib-файл интерфейса уже загружен, поэтому при любом взгляде на него вам придется загружать новый пользовательский интерфейс хотя бы иногда.
Лучшее решение, вероятно, длякод, который загружает UIViewController с зарегистрированным пользовательским интерфейсом, чтобы выяснить, требуется ли вход в систему, и загрузить совершенно другой UIViewController для входа в систему, если это так.
Затем контроллер представления входа в систему может перейти к загрузкеисходный контроллер представления, если вход в систему успешен.