её подобной? У нас имеется 5 окон(Окно1, Окно2, ..., Окно5). Окна могут переключаться друг между другом, но только в определённой последовательности, например с Окно1 можно перейти в Окно2 или Окно4. С Окно2 в Окно3 или Окно4 или Окно1(то есть на предыдущий). С Окно3 в Окно2. С Окно4 в Окно1(прошлое) и Окно5. С Окно5 в Окно4 или Окно1. Понимаю, что можно просто сделать градацию ifelse, но получится изобретение велосипеда, причм слишком хардкодного. Может кто-то видел урок или статью, где есть несколько меню, из которого можно перейти в другое меню, причём обязательно есть возможность перейти в предыдущее?
по статье не помогу, но идея засунуть экраны в стэк, тогда их вызывать можно будет только по очереди.
Вся проблема в нелинейности. Напрмер Окно1 -> Окно2 -> Окно3(назад) -> Окно2 -> Окно4 -> Окно5 -> Окно4(назад) -> Окно1(назад)
Тебе же сказали, используй стек
Для возврата назад используй стек (при переходе в новое окно пихай в стек инфу о предыдущем, таким образом для возврата назад просто будешь извлекать из стека предыдущее окно). По поводу ограничения переходов - тут уже нужно смотреть что у тебя там за окна. Может просто добавлять кнопки для перехода только к доступным окнам?
При возврате пропускаешь окошки из стека, которые тебе не нужны
В этом и проблема, нет понимания как совершить пропуск в стеке уже пройдённых окон
Похоже, ты сам для себя ещё не сформулировал, что ты хочешь
Скорее, я не правильно передаю мысль. Попробую ещё раз) Есть окна. Их всего 5. Из определенного окна я могу перейти в конкретные другие(не обязательно во все 4). Но есть задача, перейти в прошлое окно и так до самого главного. Прошлое - это не обязательно то, из которого я перешёл в текущее, но и определенное, которое только я сам(разработчик) задаю. Например, из 3 окна я могу перейти как во 2, так и 5. Тут важна уже очередь переходов окон. Но из 2 я могу вернуться назад ТОЛЬКО в первое. Если я захочу из 5 перейти назад, то опять же только в 4. Но из 4 я могу перейти либо в 1, либо 2(снова нужно смотреть на очередь переходов)
Ну так составь ассоциативный массив, из какого окна в какое ты можешь вернуться назад, и иди по стеклу назад, пока нужное окно не появиться
Обсуждают сегодня