Navigation Bar

Startseite Foren Deutsches LiveCode-Forum Navigation Bar

Schlagwörter: 

Ansicht von 9 Antwort-Themen
  • Autor
    Beiträge
    • #701
      DanielStriffler
      Teilnehmer

      Hallo zusammen,

      ich habe vor einer Woche mit dem Buch angefangen und mache nebenbei mein erstes eigenes Projekt. Nun hänge ich an dieser Navigation Bar.

      Ich würde gerne einfach damit in die verschieden Cards navigieren und nicht mit einem Button.
      Jedoch komme ich nich weiter 🙁
      Wie kann ich denn das richtig einbinden, so dass man verschiedene ItemName benutzten kann.

      Bei den Livecode Lessons steht

      on hiliteChanged
      go to card the hilitedItemName of me
      end hiliteChanged

      Das geht bei einem Item aber nicht bei mehreren.

      Ich weiß das ist vielleicht etwas früh am Anfang, aber mich wurmt, dass ich es nicht hinbekomm 🙂

      Liebe Grüße Daniel

    • #703
      DanielStriffler
      Teilnehmer

      Ich habe es:

      on hiliteChanged
      put the hilitedItemName of me into tItemClicked
      switch tItemClicked
      case „contacts“
      if contacts is „contacts“ then
      go to card „contacts“
      end if
      break
      case „favorites“
      if contacts is „favorites“ then
      go to card „favorites“
      break
      case „trash“
      if contacts is „trash“ then
      go to card „trash“
      break
      end switch
      end hiliteChanged

      Leider wird das so nirgends bei LiveCode beschrieben. Durch Zufall entdeckt 🙂

    • #704
      hauke
      Verwalter

      Hallo Daniel,

      es geht schon alles so wie Du es versuchen willst. Der Code, den Du zitiert hast, geht davon aus, dass die Cards, auf die Du wechseln möchtest, exakt den gleichen Namen haben wie die „Navigation Names“, die Du in Deinem „Navigation Bar Widget“ eingetragen hast. Dann wird es auch funktionieren.

      Wenn diese Navigation auf allen Karten an derselben Stelle liegen soll und gleich sein soll, dann ist es übrigens am besten, wenn Du die Navigation auf der ersten Card erstellst und dann in eine Group umwandelst. Dieser Group kannst Du im Property Inspector das Attribut „Behave as Background“ mitgeben, und sobald Du weitere Cards erstellst, ist diese Group dort auch vorhanden, sodass Du das Navigation Widget nur einmal anlegen musst und es später gültig für alle Seiten auch noch verändern kannst.

      Viel Erfolg!

      Hauke

    • #705
      hauke
      Verwalter

      Jetzt haben sich unsere Beiträge überschnitten. Deine neue Lösung funktioniert zwar natürlich auch, ist aber weit umständlicher und macht eigentlich exakt dasselbe, denn Du brauchst im Grunde keine switch-case Unterscheidung, wenn die Cards sowieso dieselben Namen haben, die bereits in der Variable stehen. … Aber egal… viele Wege führen zum Ziel…

      Viel Erfolg!

      Hauke

    • #706
      Klaus Major
      Verwalter

      Hi Daniel,

      hier stimmt Einiges nicht:

      on hiliteChanged
         put the hilitedItemName of me into tItemClicked
         switch tItemClicked
            case "contacts"
               if contacts is "contacts" then
                  go to card "contacts"
               end if
               break
            case "favorites"
               if contacts is "favorites" then
                  go to card "favorites"
                  break
               case "trash"
                  if contacts is "trash" then
                     go to card "trash"
                     break
               end switch
            end hiliteChanged

      1. Es fehlt END IF bei den letzten beiden CASEs.
      Ich hatte den Code in Livecode in ein Skript kopiert und wie man sieht, es wird nicht korrekt eingerückt. Einmal TAB drücken im Handler, dann formatiert LC den Handler korrekt und man hat auch eine optische Kontrolle, ob alles korrekt ist.
      2. Die IF THEN Abfrage ist hier doppelt gemoppelt, SWITCH…CASE reicht völlig aus
      3. die Variable -> contacts ist nirgendwo definiert bzw. nicht mit einem Wert gefüllt, daher hat sie als Inhalt den STRING „contacts“ und nur der erste CASE funktioniert, wenn auch mehr durch Zufall. 😉

      Gruß

      Klaus

    • #707
      DanielStriffler
      Teilnehmer

      Super danke für die Antworten.

      Aber irgendwie geht das nicht. Ich habe die Cards wie im „Navigation Bar Widget“ unter „Navigation Names“eingetragen.
      Dann den Code

      on hiliteChanged
      go to card „card1“
      go to card „card2“
      go to card „card3“
      end hiliteChanged

      das endet immer auf der 3. Card

      Wie bekomm ich das hin dass auch beim klick auf das zweite Icon die card2 erscheint?!.
      Sorry für die dämlichen Fragen


      @Klaus
      stimmt 🙁 so funktioniert es auch nicht

    • #711
      Klaus Major
      Verwalter

      Hi Daniel,

      Dein Skript sagt Livecode nur:
      Wenn jemand auf den „Navigation Bar“ klickt, dann gehe zur Karte „Card1, dann zur Karte „Card2“ und dann zur Karte „Card3“, darum siehst Du immer nur die Karte „Card3“

      Dieses Skript, wie Du oben schon einmal erwähntest, ist das richtige:

      on hiliteChanged
         go cd the hilitedItemName of me
      end hiliteChanged

      Dafür müssen die Karten auch „Card1“ etc. heissen und die „itemnames“ genau so!
      Ich denke, das war bei Dir vorher nicht der Fall, weshalb dieses Skript nicht funktioniert hat.

      Ist ja auch logisch, denn im Skript steht:
      Gehe zu der Karte, die so heisst wie das angeklickte „hilitedItemName“ von mir 🙂

      Das Gute daran ist ja, daß dem User durchaus ein anderer Name angezeigt werden kann, ebenso wie bei Buttons, deren NAME und LABEL nicht inbedingt identisch sein müssen.
      Ideal bei mehrsprachigen Anwendungen!

      Gruß

      Klaus

    • #712
      DanielStriffler
      Teilnehmer

      Achsoooo 🙂 das ist ja einfach und funktioniert tadellos

      Oh man und ich dachte ich muss für das „hilitedItemName“ den Namen einsetzten und habe immer Fehler bekommen, da etwas fehlt.

      Vielen leiben Dank an euch!

    • #713
      Klaus Major
      Verwalter

      Bei Livecode ist es immer einfacher, als man denkt! 😉

    • #22989
      Anonym
      Inaktiv

      und was kann man machen wenn der hilited icon einfach auf ein anderes icon springt obwohl der cardwechsel problemlos erfolgt?

Ansicht von 9 Antwort-Themen
  • Du musst angemeldet sein, um auf dieses Thema antworten zu können.