Всем привет. Может кто-то уже сталкивался с такой задачей или

её подобной? У нас имеется 5 окон(Окно1, Окно2, ..., Окно5). Окна могут переключаться друг между другом, но только в определённой последовательности, например с Окно1 можно перейти в Окно2 или Окно4. С Окно2 в Окно3 или Окно4 или Окно1(то есть на предыдущий). С Окно3 в Окно2. С Окно4 в Окно1(прошлое) и Окно5. С Окно5 в Окно4 или Окно1. Понимаю, что можно просто сделать градацию ifelse, но получится изобретение велосипеда, причм слишком хардкодного. Может кто-то видел урок или статью, где есть несколько меню, из которого можно перейти в другое меню, причём обязательно есть возможность перейти в предыдущее?

10 ответов

23 просмотра

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

Rusya- Автор вопроса
Constantine Prokhorov
по статье не помогу, но идея засунуть экраны в стэ...

Вся проблема в нелинейности. Напрмер Окно1 -> Окно2 -> Окно3(назад) -> Окно2 -> Окно4 -> Окно5 -> Окно4(назад) -> Окно1(назад)

Rusya- Автор вопроса
Lucas
Тебе же сказали, используй стек

И как мне в таком случае поможет стек?

Для возврата назад используй стек (при переходе в новое окно пихай в стек инфу о предыдущем, таким образом для возврата назад просто будешь извлекать из стека предыдущее окно). По поводу ограничения переходов - тут уже нужно смотреть что у тебя там за окна. Может просто добавлять кнопки для перехода только к доступным окнам?

Rusya
screenshot И как мне в таком случае поможет стек?

При возврате пропускаешь окошки из стека, которые тебе не нужны

Rusya- Автор вопроса
Lucas
При возврате пропускаешь окошки из стека, которые ...

В этом и проблема, нет понимания как совершить пропуск в стеке уже пройдённых окон

Rusya
В этом и проблема, нет понимания как совершить про...

Похоже, ты сам для себя ещё не сформулировал, что ты хочешь

Rusya- Автор вопроса
Lucas
Похоже, ты сам для себя ещё не сформулировал, что ...

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

Rusya
Скорее, я не правильно передаю мысль. Попробую ещё...

Ну так составь ассоциативный массив, из какого окна в какое ты можешь вернуться назад, и иди по стеклу назад, пока нужное окно не появиться

Похожие вопросы

Обсуждают сегодня

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Ребят, подскажите, пожалуйста, почему в префиксе к ассетам, которые генерируются через фильтр | theme в шаблоне, стал вдруг появляться index.php? Вот так выглядит ссылка на а...
Виталий
1
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
Карта сайта