Похоже, корень проблемы в том, что вы полагаетесь на лист, чтобы предотвратить взаимодействие с остальной частью приложения.Вы эффективно храните информацию о состоянии приложения (вошли в систему / не вошли в систему) в виде, и это не очень хороший план.
Лист должен позволять пользователю вводить информацию для входа в систему и контроллер листа входа в систему.должен обновить состояние приложения при вводе информации.Если вы воспользуетесь этим подходом, приложение не позволит пользователю делать что-либо, требующее входа в систему, до тех пор, пока процесс входа в систему фактически не будет завершен, независимо от того, есть лист или нет.