How to use NavigationView and NavigationLink in SwiftUI | Bootcamp #30

Поділитися
Вставка
  • Опубліковано 22 сер 2024

КОМЕНТАРІ • 86

  • @1moRep
    @1moRep Рік тому +21

    Navigation bar items is depricated, you have to use the .toolbar modifier instead
    .toolbar {
    ToolbarItemGroup(placement: .navigationBarLeading) {
    Button {
    } label: {
    Image(systemName: "person.fill")
    }
    }
    ToolbarItemGroup(placement: .navigationBarTrailing) {
    Button {
    } label: {
    Image(systemName: "gear")
    }
    }
    }

    • @tonnykhumbongmayum8282
      @tonnykhumbongmayum8282 7 місяців тому +4

      ⛔ #NavigationView is deprecated. Check ➡ *New* Video #62
      *_NavigationStack_* -> ua-cam.com/video/GZ-hQWMjT0s/v-deo.htmlsi=j71M7VmAkN1DrM0e
      ⛔ #navigationBarItems is deprecated. Check ➡ *New* Video #63
      *_Toolbar_* -> ua-cam.com/video/53fWEfSo0tk/v-deo.htmlsi=KsHuRnexUQjMIkMe

    • @CMessineo
      @CMessineo 5 місяців тому +1

      What do you put inside the "button" code to switch to the other screen?

    • @erenunal1512
      @erenunal1512 19 днів тому

      @@CMessineo first, sorry for my english. NavigationLink doesnt need a button. They dont work together. Just use NavigationLink without button section. Try this:
      .toolbar {
      ToolbarItemGroup(placement: .topBarLeading) {
      HStack {
      Image(systemName: "person.fill")
      Image(systemName: "flame.fill")
      }
      }
      ToolbarItemGroup(placement: .topBarTrailing) {
      NavigationLink(destination: myOtherScreen()) {
      Image(systemName: "gear")
      .foregroundColor(.red)
      }
      }
      }

  • @rubensiman8749
    @rubensiman8749 Рік тому +7

    One day, I will meet you and thank you for everything you have done!, each of your videos are so well made and have help me out so much !

  • @yourbestsail
    @yourbestsail Рік тому +21

    Hello Nick, the NavigationView is deprecated since 2022. Could you make a video about the NavigationStack? Thanks a lot for your fantastic SwiftUI courses!

    • @dhruvsharma7769
      @dhruvsharma7769 5 місяців тому

      and also buddy it is nothing complex it is same as Navigation View

    • @yourbestsail
      @yourbestsail 5 місяців тому

      @RehanKhan-zw3vqThank you 😊

  • @paragjyotideka1246
    @paragjyotideka1246 Рік тому +8

    Excellent Language! I am coming from a react native background and it's just so similar, but way more intuitive and simple. Swift is just simply amazing. And you explained it so beautifully.

    • @SwiftfulThinking
      @SwiftfulThinking  Рік тому +1

      Thanks! React is also great 👍

    • @sarimahmad478
      @sarimahmad478 Рік тому +1

      100% agreed, those who are coming from the react native background, this is the best series for learning SwiftUI

  • @roshanthapa25
    @roshanthapa25 Рік тому +2

    Beautifully explained. Glad I found this channel today, event if it's quite late

  • @andrejkling3886
    @andrejkling3886 3 роки тому +5

    Excellent tutorial.... amazing. Thank you so much. Real knowledge. Keep going....

  • @bbulliard
    @bbulliard 2 роки тому +1

    Great video! bought you 3 coffee's to keep you going with all these fantastic video's....bob

  • @alexbggtt
    @alexbggtt 11 місяців тому

    So helpful! I do have a question though, and I'm sure other people have had the same... When I switch to a different struct with a navigation link (like a log in screen to a main menu), when I add a new navigation link to the menu and use it; the third page has both the original navigation title that returns to the first page, and a second underneath it that returns to the second page, and it downshifts the entire third page. Does anyone know how to fix this? Thank you so much for your channel and I hope you never stop making these videos!

  • @sadeqnoori8707
    @sadeqnoori8707 3 роки тому +1

    Sure, I am excited.....

  • @CMessineo
    @CMessineo 5 місяців тому

    This is the first video I couldn't finish, because I couldn't figure out how to make NavigationBarItems work in 15.x. EDIT: I got it to work - it was just a typo.

    • @SwiftfulThinking
      @SwiftfulThinking  5 місяців тому

      You can still use deprecated methods. Apple will “deprecate” methods but they will continue to work for years lol the new way is using .toolbar.
      FYI, I’ve appended videos at the end of each playlists that cover these changes when you get there

  • @jerripot
    @jerripot 2 роки тому +2

    Good stuff thank you. I was thinking along the about getting from the third screen back to the first without visiting the second view on the way?

  • @julianm080808
    @julianm080808 6 місяців тому

    Nick thanks for making this video is awesome, keep it up God bless you

  • @heshamabdo6024
    @heshamabdo6024 Рік тому +2

    Please we need a video of the new navigation technique in IOS16 it's called Navigation Stack

  • @shazimulkaif1103
    @shazimulkaif1103 6 місяців тому

    I don't know why your intro feel like ad... Thanks for making video.

  • @knowledgeispower4953
    @knowledgeispower4953 6 місяців тому

    Greate bro..😇

  • @yuchen3587
    @yuchen3587 2 роки тому

    How many people are using SwiftUI in the world? You deserve more subscribers

    • @SwiftfulThinking
      @SwiftfulThinking  2 роки тому

      Haha I think more people are learning SwiftUI every day

  • @dochard5511
    @dochard5511 2 роки тому +1

    Great video. Any tips on dismissing the entire stack at once rather than going back each time?

  • @Firelordca4
    @Firelordca4 Рік тому +1

    Amazing video. Any plans to redo, or re-upload this video, now that iOS 16 is out and NavigationView got a complete overhaul?

  • @rafatwasef8518
    @rafatwasef8518 2 роки тому

    Great video as usual Thank you so much

  • @seferzeynalli8188
    @seferzeynalli8188 2 роки тому +1

    thank you very much

  • @mohanedAlsheikh
    @mohanedAlsheikh 2 роки тому

    Helpful, Thanks a lot

  • @JeckyKA
    @JeckyKA 3 роки тому

    great, thanks a lot!

  • @magedmohmed4403
    @magedmohmed4403 Рік тому

    Nick , Thank you again for your helpful tutorial 🤎🤎

  • @user-ev3dl9zt8s
    @user-ev3dl9zt8s 3 роки тому

    great!!! thank you

  • @markme7092
    @markme7092 3 роки тому +1

    make some video on advanced topic like firebase upload image in list and some others SwiftUI advance.

    • @SwiftfulThinking
      @SwiftfulThinking  3 роки тому +3

      Hi Mark! Of course... I will be adding more advanced playlists after this one. However, the SwiftUI Bootcamp is going to be beginner level videos only.

  • @mrclean851
    @mrclean851 3 роки тому +1

    Hi, excelente video. Two questions : 1) Can I add an Image(systemName()) to the NavigationTitle()? 2) can I put the .NavigationLink() inside a .OnTapGesture?

    • @SwiftfulThinking
      @SwiftfulThinking  3 роки тому +4

      1) No, but you can use emojies in the Navigation title 🥳
      2) No, a NavigationLink is a clickable button itself. You don't need the tapGesture!

  • @swaragandhi6122
    @swaragandhi6122 Рік тому

    Your video is super helpful but I have a question. How to I hide the buttons above my navigationlink so it does not show up on my second screen.

  • @muhammedturk_22
    @muhammedturk_22 Рік тому

    Hey Nick !! Your videos are amazing but there are some tools deprecated. Isn't it possible to talk about the tools deprecated ?

  • @iAmBeyondGreat
    @iAmBeyondGreat 3 роки тому

    great video

  • @rasheed1andrew
    @rasheed1andrew 3 роки тому +1

    it would be great to put the problems one might face by putting "MyOtherScreen" in another navigation view because It took me two weeks to figure it out. again thanks for your videos. I found it in a nick of time. if I'm right putting "MyOtherScreen" in another navigation view will make the screen look funny at the top when you segue from the first screen to the next screen. it creates too mush extra space that is suppose to be for a navigation title. at this point I'm changing my instagram bio to software developer.

    • @rasheed1andrew
      @rasheed1andrew 3 роки тому +1

      @ 15:43. got it. just gotta pay attention more. all this knowledge with just 715 views? society is walking on its head and thinking with its feet.

    • @SwiftfulThinking
      @SwiftfulThinking  3 роки тому +1

      Haha yea 1 NavigationView is all you need! Thanks for watching Rasheed.

  • @MegaOlzo
    @MegaOlzo 2 місяці тому

    Maybe it helps someone. After deprecation, the new implementation looks like this:
    in new implementation instead of NavigationView >> NavigationStack. Also changed NavigationLink syntax. Implementation looks:
    NavigationStack {
    ScrollView {
    NavigationLink {
    MyOtherScreen()
    } label: {
    Text("Hello World!")
    }
    Text("Hello World!")
    Text("Hello World!")
    Text("Hello World!")
    }
    .navigationTitle("All inboxes")
    .toolbar {
    ToolbarItem(placement: .topBarLeading) {
    NavigationLink {
    MyOtherScreen()
    } label: {
    HStack {
    Image(systemName: "person.fill")
    Image(systemName: "flame.fill")
    }
    }
    }
    ToolbarItem(placement: .topBarTrailing) {
    NavigationLink {
    // Some another screen
    } label: {
    Image(systemName: "gear")
    }
    .tint(.red)
    }
    }
    }

  • @randlyce
    @randlyce 3 роки тому +1

    Hey i got a question, for that third screen. I tried using navigation link to go to a new link but for some reason my "back" button keeps getting added instead of it being replaced so say my first view is inboxes i click the navigation link and then it would move to the messages views there would be a back button that says inboxes (still normal) but then from that second page when i click a navigation link to a third page then the back button that says inboxes is still there PLUS underneath it there's a back button for me to go to messages as well. could you help me please?

    • @SwiftfulThinking
      @SwiftfulThinking  3 роки тому +1

      Hi Arman! It sounds like you have 2 NavigationViews in the hierarchy. Once you are inside a NavigationView, you only need to use NavigationLinks to segue. I'm guessing the 3rd screen you are going to has another NavigationView on it. You only need to use this once!

  • @mohammadsadman8567
    @mohammadsadman8567 Рік тому

    Hey i am new on swiftui and xcode, i am used to using vs code and prettier. how can i achieve on save code format on xcode like prettier. i have turned on convert exist file on save . There is always empty lines in code i want it to gone away on save

  • @mygamblingstories5765
    @mygamblingstories5765 3 роки тому +1

    Hi,
    1) Is it possible in an argument title of NavigationLink to pass anything instead of String?
    2) How I can set any modifier(.font(.title2) .fontWeight(.semibold) to a title(String) argument of NavigationLink?
    Thank you

    • @SwiftfulThinking
      @SwiftfulThinking  3 роки тому

      Hello! No, this is not possible. The Navigation Title that comes by default is not very customizable. You would need to make your own title section and customize a Text().

  • @ktok8855
    @ktok8855 Рік тому +2

    cannot use .navigationBarItems right now(22.11.04) i made same UI with
    .toolbar {
    ToolbarItem(placement: .navigationBarLeading) {
    Image(systemName: "person.fill")
    }
    ToolbarItem(placement: .navigationBarTrailing) {
    Image(systemName: "gear")
    }
    }
    anyone who have better ideas, please comment below

    • @ktok8855
      @ktok8855 Рік тому

      also cannot use .accentColor. I used .foregroundColor instead

    • @vazzhh
      @vazzhh 7 місяців тому

      .toolbar {
      ToolbarItem(placement: .topBarLeading, content: {
      Image(systemName: "person.fill")
      })
      }
      jajajaja exactly the same

  • @raviprajapati6677
    @raviprajapati6677 Рік тому

    Hi can you explain after tap on login screen how to change root view in swiftui?

  • @wetali91
    @wetali91 Рік тому

    Great video, but keep in mind that this is deprecated, so now apple want us to use NavigationStack instead.

  • @mhmtkrnlk
    @mhmtkrnlk 2 роки тому

    Hey its been long time upen this video but can you show .isDetailLink stuff how to rotate between like viewA->viewB->viewC->viewA

  • @videodudeler
    @videodudeler 2 роки тому

    If you wanted to can you also turn the other 3 hello worlds into naviagation links aswell? can you do multiple navigation links in the list

  • @grenvil8414
    @grenvil8414 3 роки тому +1

    is possible to make styling on "ALL INBOX", example change color ?

    • @SwiftfulThinking
      @SwiftfulThinking  3 роки тому +2

      Hi Adit! I will cover updating fonts in a future video, but if you want to override the default font in the NavigationView you can the following within the init or anywhere in your app before the screen loads: UINavigationBar.appearance().largeTitleTextAttributes = [.font: UIFont(name: "Arial", size: 32)!]

    • @grenvil8414
      @grenvil8414 3 роки тому +1

      @@SwiftfulThinking thank you very much for you help, I found other solutions, I hide the bar, and create custom Navbar, with HStack

  • @bbulliard
    @bbulliard 2 роки тому

    Is there a limit to number of navigation links, or entries in navigation view? After I did 10 entries,I get a compile error….extra argument in call

    • @SwiftfulThinking
      @SwiftfulThinking  2 роки тому

      Hey bob! I think there’s a limit to 10 items in any ViewBuilder (HStacks, VStacks, etc.) It should work if you break it up into sections (you can do stacks within stacks) or use a ForEach loop instead

  • @DrzReaper
    @DrzReaper 2 роки тому

    Hey, I'm trying to add the ScrollView() ontop of my Image("background") but for some reason my image always overlaps the scrollView is there a solution to this?

    • @SwiftfulThinking
      @SwiftfulThinking  2 роки тому

      Hey, I'm not sure exactly what the issue is. The background should be i na Zstack behind the scroll view. You can post some code in our Discord if you're still stuck: discord.gg/vhKKyYTGDb

  • @Pro-jz8wg
    @Pro-jz8wg 3 роки тому

    Thank you for your work!
    its one of the most understandable video that I watched about navigation links with swiftui.
    But now im stuck when im trying to link login and password button with firebase.
    Do you have any content about it on your channel ?
    //sorry for my English)

    • @SwiftfulThinking
      @SwiftfulThinking  3 роки тому +4

      Hi ProДеньги! I do not have any Firebase content YET. However, I've had many requests for it so I'm planning on doing a Firebase playlist soon.

    • @GabeGarboden
      @GabeGarboden 3 роки тому

      @@SwiftfulThinking This would be great if you're still considering this!

  • @hugob5093
    @hugob5093 3 роки тому

    Is it possible to resize the navigation bar ? To use it as a header of the view ?
    Thank you

    • @SwiftfulThinking
      @SwiftfulThinking  3 роки тому +1

      Hi Hugo! No, unfortunately we can't customize the default Navigation Bar that Apple gives us. However, we can hide the Navigation Bar and put our own custom View on the screen instead. If you are just learning SwiftUI, I would recommend using Apple's default styling until you are more comfortable. I will be doing a "Custom Navigation Bar" in a more advanced course coming soon!

  • @mrclean851
    @mrclean851 3 роки тому

    Continuing with my questions : one of two, I am either doing something wrong or it can't be done who I have my setup. I am have custom shapes (I would like to use them as buttons/navegationlink label) I have a ForEach loop within a ZStack displaying 6 of these navegationlinks, each to a different destination. Result: they do display, but upon clicking each one, only the last one is selected, and thus can only segeway to the last View! What am I doing wrong? is there an issue generating navegationlinks within a ForEach within a ZStack? thanks Nick!

    • @SwiftfulThinking
      @SwiftfulThinking  2 роки тому

      Hi! The source code is available on my Github if you want to compare your code (github.com/SwiftfulThinking). It sounds like you're mistyping something.

    • @mrclean851
      @mrclean851 2 роки тому

      I think it has todo something with the tappable area = .frame and zstack overlaying these frames. My shapes are irregular (arcs) and .frames are square! Any suggestion?

  • @TeemoChan
    @TeemoChan Рік тому

    I know Your are busy with firebase course but Can You Redo this tutorial as navigationView is deprecated and all other tutorials are complicated

    • @SwiftfulThinking
      @SwiftfulThinking  Рік тому +2

      I am adding videos to the end of this playlist starting next week 👍

  • @CFthorin
    @CFthorin 2 роки тому

    hmm seems like navigationBarItems has been deprecated

    • @SwiftfulThinking
      @SwiftfulThinking  2 роки тому +1

      We can use the .toolbar instead, and place items on the .navigationBarLeading and .navigationBarTrailing placements!

  • @haidersalih287
    @haidersalih287 3 роки тому +1

    Lets get Coding

  • @bravolatavera3647
    @bravolatavera3647 Рік тому

    presentationMode.wrappedValue.dismiss() is now deprecated.
    use
    @Environment(\.dismiss) private var dismiss