Tochscreen-Display mit Menue-Steuerung

Du solltest Deinen Code anders struktuieren. Verwende eine "mode"-Variable, die den aktuellen Status bzw. Modus repräsentiert. Dann ist mode==0 Deine Startseite, mode==1 entspricht Deiner Menuseite usw. Beim Drücken der Buttons wird dann einfach der mode hochgezählt:

#define MODE_COUNT 3

if (buttonpress) {
  mode = (mode + 1) % MODE_COUNT;
}

Zur Anzeige kannst Du dann einfach ein if-else-Konstrukt nehmen:

if (mode == 0) {
  startseite();
} else if (mode == 1) {
  menue();
} else if (mode == 2) {
  setting();
} else {
  show_error();
}

Ein switch-Statement wäre auch möglich, aber das verwende ich aus Speichergründen erst ab sehr vielen möglichen Zuständen.

Mit einer solchen "State Machine" sind die Fehler, wie Du sie schilderst viel unwahrscheinlicher, weil sie schnell offensichtlich werden. Du musst so nämlich nur noch die Voraussetzungen für einen Status-Wechsel programmieren, die "mode"-Variable entsprechend setzen und nicht in einer unübersichtlich verschachtelten if-else-Konstruktion jede mögliche Kombination abhandeln.