Wpis z mikrobloga

Czy w aplikacji, która musi obsługiwać przycisk wstecz, dobrym sposobem jest zapisywanie "aktualnie wyświetlanej strony" do stosu? Czy są lepsze sposoby?
W sensie, jestem na stronie A, dodaj do stosu stronę A
idę na stronę B, dodaj do stosu stronę B;

naciskam przycisk wstecz -> Przejdź do strony A, naciskam wstecz jeszcze raz -> wyłącz aplikację

w algorytmie to by mniej wiecej tak wychodziło:
Sprawdź, czy aktualna strona to ostatnia ze stosu, jeśli tak, to pobierz jeszcze wcześniejszą, natomiast jeśli nie, to przejdź do wcześniejszej. Jeśli nie ma wcześniejszej, wyłącz aplikację

#naukaprogramowania #programowanie
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@MroczekBall3D: Stos to stos, a FIFO to kolejka, blade pojęcie o strukturach danych wykazujesz.
Jeśli ktoś pyta nawet o tak banalną rzecz, jak odkładać sekwencję stron i jak się w tej strukturze poruszać, to masakra...
  • Odpowiedz
@cevilo: Masz rację, rażący błąd ;/
Wczoraj czytałem o tym dość późno, jednak wiem, ze to nie wymówka. Porażka ;=;

+ Odkładanie stron, normalnie to wiem jak obsłużyć, jednak chciałbym to zrobić jakoś inaczej
  • Odpowiedz
@silver_spike: A jest gdzieś implementacja tego obiektu history ?
Bo tak naprawdę to o to nam chodzi, a nie jak nazywa się metoda wstecz w jakimś API.
Można to łatwo zrobić na każdej strukturze danych, tylko właśnie zaimplementować wstecz i na przód.
  • Odpowiedz
@cevilo: nie widziałem, żeby @MroczekBall3D prosił o implementację w jakimś języku, a pytał bardziej o algorytm - więc najłatwiej zobaczyć jak rozwiązuje to typowa aplikacja korzystająca z guzików wstecz-dalej i jaki udostępnia interfejs. I właśnie w tym dokumencie może zobaczyć, jak to robią przeglądarki - i nie musi wyważać otwartych drzwi.
  • Odpowiedz
@silver_spike:
Ogólnie to #csharp, tak, chodziło mi o kwestie teoretyczne, jak to rozwiązać xd
Queue odpada, zostaje Stack, gdzie bede dodawać object jako typeof(Page) (przykład)
Wiem, ze jest w wpf/uwp Frame i tam mamy Navigate.Forward, Navigste.Back, jednak wole to samemu zrobić, bo nie używam Frame
  • Odpowiedz