SwiftUI Navigation - NavigationView & NavigationLink Tutorial

Поделиться
HTML-код
  • Опубликовано: 4 сен 2024
  • Head to squarespace.co... to save 10% off your first purchase of a website or domain using code SEANALLEN.
    In today's video I show you how to navigate between screens in your SwiftUI app using NavigationView and NavigationLink. I also the the basics of passing data between views as well as some simple customizations.
    UINavigationController Tutorial Video:
    • iOS Navigation Control...
    If you like my teaching or presentation style, I've started creating my own courses:
    seanallen.teac...
    Twitter:
    / seanallen_dev
    Link to my book - How I Became an iOS Developer:
    gumroad.com/l/...
    Hired.com:
    hired.com/x/1n01g
    Check out my podcast, iOS Dev Discussions:
    itunes.apple.c...
    Book and learning recommendations that help out the channel if you decide to purchase (Affiliate Links):
    Ray Wenderlich Books:
    store.raywende...
    Ray Wenderlich Videos:
    store.raywende...
    Paul Hudson's Hacking With Swift:
    gumroad.com/a/...
    Learn Advanced Swift Here:
    gumroad.com/a/...
    Links to my iOS Dev Setup & iOS Dev Book Recommendations
    www.amazon.com...
    #swift #softwaredeveloper #iosdeveloper

Комментарии • 98

  • @seanallen
    @seanallen  3 года назад +13

    If you enjoyed my teaching/presentation style, I've created a SwiftUI Fundamentals course that you can find at seanallen.teachable.com. You can watch the first ~10% for free to get a feel for it.

  • @PatrikManHora
    @PatrikManHora 2 года назад +2

    2:36 This piece of information is what I needed. I was putting nav controllers inside each other like an idiot...

  • @dexteroreilly
    @dexteroreilly 3 года назад +7

    Thanks Sean! Your tutorials have helped me in the development of my contact tracing app for iOS. I can code for android in my sleep, but Swift is another story since I’ve never used it. Keep up the great work!

    • @seanallen
      @seanallen  3 года назад

      Thanks! Happy to help.

    • @Monster33336
      @Monster33336 3 года назад

      Android is much harder in my opinion. Apple nailed it when they introduced Swift.

  • @marinab.6647
    @marinab.6647 3 месяца назад +1

    changing the color of the buttons and the offset .. is what I needed. Thank you!

  • @larsmees4952
    @larsmees4952 Год назад +1

    God, this video helped me solve an issue that I've been trying to solve for days! Thanks for the clear tutorial Sean!

  • @pleasewait8913
    @pleasewait8913 2 года назад

    Your all video is super good and easy to understand. It changed from state nightmare to state happymare. Thank you from the deep of my heart.

  • @boonyawatl
    @boonyawatl 3 года назад +2

    Questions. I want to put the struct BlueTwoView in a separate file. How can I do that? I did it and it says Cannot find in scope. Thanks for your help

  • @josstaneke5300
    @josstaneke5300 3 года назад +1

    Great tutorial. Like the fact you show directly what you change in your code in the preview.

  • @Nilely
    @Nilely 3 года назад +1

    Your videos makes understanding swift UI concept very easy. 👍

    • @seanallen
      @seanallen  3 года назад +1

      Glad to hear it, Nilesh!

  • @polyglotmona
    @polyglotmona 10 месяцев назад

    3:33 into the video and I'm really loving you. I've tried many teachers in the last few months, but your style seems to be the one I can get the most out of. Do you know how many complicated tutorials there are that not even work, and beginners just don't know why and are lost and are getting depressed. So a big: Danke 💜 thank you 💛 gracias 🧡 merci 💙 grazie 💚 спасибо ❤ for your clear explanations, because they are easy-to-follow, clearly to see and they're working :)

    • @polyglotmona
      @polyglotmona 10 месяцев назад

      by the way, when I hit rename, it couldn't preview, but I figured I'd search for more "ContentView" in the code and found it: The ContentView_Previews hadn't changed to RedOneView_Previews, so I changed it manually, and wooo - the preview worked :)

    • @polyglotmona
      @polyglotmona 10 месяцев назад

      and I'm actually learning, when you say "and now resume - see, there's the green three" but there's a green 2 :D

    • @seanallen
      @seanallen  10 месяцев назад +1

      Glad you're enjoying my teaching style!

  • @ins3rt915
    @ins3rt915 6 месяцев назад +2

    Thanks so much dude, this is exactly what I needed!

    • @seanallen
      @seanallen  6 месяцев назад +1

      Glad I could help!

  • @smow8618
    @smow8618 3 года назад +2

    Thanks! I currently don’t have a Mac or any app,e computers for Xcode, but I’ve been using swift playgrounds and surprisingly I’ve been able to follow the entire video. But I needed to write a few lines of code for translation and whatever. Nice video though 👍

    • @seanallen
      @seanallen  3 года назад +1

      Interesting to hear how these work on Playgrounds as I've never tried that.... Glad it was helpful!

  • @clayfulgham21
    @clayfulgham21 3 года назад +1

    This Video really cleared things up for me. Thanks

    • @seanallen
      @seanallen  3 года назад

      Happy to help, Clay.

  • @LEKYSMA
    @LEKYSMA 3 года назад

    Nice segue to the commercial at the end of the video

  • @barche75
    @barche75 3 года назад +1

    Great video, Sean. One thing can be helpful how to pop to root view.

    • @seanallen
      @seanallen  3 года назад

      It's on my video to-do list!

  • @yashumaurya4500
    @yashumaurya4500 3 года назад

    Guru ji Pranam . Love from India

  • @wesleybritob
    @wesleybritob 3 года назад +4

    Nice video !!
    Unfortunately the way they design navigation link kind of sucks. If you have 3 views and when you are in your view3 you can't go back to the view1 unless you pass the state reference from view1 to view2 and view3...

  • @PiccolosDaughter
    @PiccolosDaughter 2 года назад +1

    Thank you so much for making this video.

    • @seanallen
      @seanallen  2 года назад +1

      Glad it was helpful 👍

  • @user-tf9pt7yy7w
    @user-tf9pt7yy7w Год назад

    Nice tutorial! At first, I thought Gervonta Davis retired and started programming RUclips.

  • @TheSteak1984
    @TheSteak1984 11 месяцев назад +1

    Thank you!🙏

    • @seanallen
      @seanallen  11 месяцев назад

      Happy to help!

  • @lucarauchenberger628
    @lucarauchenberger628 2 года назад +1

    awesome video!

    • @seanallen
      @seanallen  2 года назад

      Glad you enjoyed it!

  • @wilsonnarea5378
    @wilsonnarea5378 2 года назад

    Thank you so much!!! Amazing teaching style.

  • @nazarwelkakayew692
    @nazarwelkakayew692 2 года назад +1

    Thanks Sean. You helped me a lot)

  • @KimbrellBrad
    @KimbrellBrad 3 года назад +1

    Great content Sean! Thanks for a great refresher.

    • @seanallen
      @seanallen  3 года назад

      Happy to help, Brad.

  • @fgpr999
    @fgpr999 3 года назад +1

    On the point tutorial. Very useful for an Android developer like me who is currently porting his app to iOS 😁

    • @seanallen
      @seanallen  3 года назад +1

      Glad it was helpful!

  • @aymanomara8468
    @aymanomara8468 2 года назад

    thanks your tutorials is really helpful

  • @andrejkling3886
    @andrejkling3886 3 года назад +1

    Cool lesson Sean.... Thank you for sharing

  • @jenniferescobar6085
    @jenniferescobar6085 3 года назад +1

    Nice thanks for this presentation you are awesome

    • @seanallen
      @seanallen  3 года назад +1

      Thanks for the kind words, Jennifer!

  • @MonsterGames71
    @MonsterGames71 Год назад

    a very helpful tutorial thanks Sean

  • @sam2223
    @sam2223 Год назад

    awesome tutorial

  • @QuentinVadon101
    @QuentinVadon101 3 года назад

    Super, Super clear tutorial .. Thank you so much !

  • @Bharat_s
    @Bharat_s 3 года назад

    I wish you could also tell how to make a button to go back to the first view or Home Screen. Thank btw. I was on a loop because I was using navigation view on every page. Thank a lot .

  • @StowGeneral
    @StowGeneral 3 года назад

    Simply, Thank you! You are awesome. Liked and subscribed.

  • @erickmartins9510
    @erickmartins9510 Год назад

    Thank you man!

  • @ProgramJerol
    @ProgramJerol 5 месяцев назад +1

    Now with ios 17, i got problems with NavigationView, and now trying to see newer implementation like the Navigation Stack

    • @seanallen
      @seanallen  5 месяцев назад

      I did a video all about NavigationStack here - ruclips.net/video/oxp8Qqwr4AY/видео.html

  • @Tw33tMonsta14
    @Tw33tMonsta14 3 года назад +1

    How do we change the background color of the navigation bar title when it is .inline? I’ve tried doing UINaviationBar.appearance().backgroundColor = .red, but it only works when the bar title is large or automatic, not when it is inline.

  • @academicsuccess5034
    @academicsuccess5034 3 года назад

    nice work

  • @jakubkromoowski4065
    @jakubkromoowski4065 4 месяца назад

    Is there some way to pass to button view destination like a color or font size?

  • @dotnetdevni
    @dotnetdevni 2 года назад

    .net has a good implementation called shell which creates a naivgation drawer on both ios and andriod but performace of shell is slow

  • @btechstuff
    @btechstuff 2 года назад

    Great explanation of the navview, Sean. Can I show navlinks side by side in an hstack? So two "buttons" each goes to a diff destination

  • @parthjangid3587
    @parthjangid3587 Год назад

    Hey Sean,
    Thanks for this amazing video. I have one silly question, correct me if I am wrong but when you click on a piece of code in the preview a border tends to appear around it. How can we get this for our project too?

  • @jaylensmith6308
    @jaylensmith6308 2 года назад

    Is it necessary to have them in one view file? I have the code navigating in between different view files

  • @rhiannondennis2075
    @rhiannondennis2075 3 года назад

    Thank you so much!!

  • @zenithacademy4588
    @zenithacademy4588 Год назад

    how to navigate between branched views as we do in storyboard. because this is completely sequential.

  • @georgehabib4333
    @georgehabib4333 2 года назад

    Thanks Sean
    @4:00 - Is there a way of determining the actual size of the Navigation Bar to exactly offset the shuffling in y? I have an image on my splash screen (that doesn't include the navigation view) that I want to line up exactly with the same image on my home view. I can manually fudge it, but I suspect the offset will change depending on device used

  • @finalpets
    @finalpets 3 года назад

    What about Nested NavigationView? how to return to the RootContoller?

  • @wenlongteo6272
    @wenlongteo6272 3 года назад

    Good tutorial for an Android developer who started to learn ios dev as well :)
    But how about deep link? Is it included in NavigationView?

  • @dzmitryfedchanka1720
    @dzmitryfedchanka1720 3 года назад +1

    Best timing as usual :3

  • @aganeto1
    @aganeto1 3 года назад

    I saw when you said to remove the NavigationView from BlueTwoView , otherwise it would push things very down.
    However I need a structure like ListView -> ListView -> DetailView... Something like nested listview or sublistview.
    For example:
    ----- Shoes (main listview)
    ----- Shoes blue (secondary listview)
    --- DetailView ShoewBlue
    --- Shoes Red
    --- DetailView Shoew Red
    --- Clothes
    How can I accomplish it?
    Thx

    • @codywright7658
      @codywright7658 2 года назад

      I would also like to know how to do this. I’ve been trying things all day.

  • @dotnetdevni
    @dotnetdevni 2 года назад

    Swift ui falls down at navigation should have a simple navigation drawer abilitie but doenst

  • @wafflestraw8631
    @wafflestraw8631 2 года назад

    My preview keeps crashing. What should I do?

  • @cyberrage8658
    @cyberrage8658 3 года назад

    Hey sean, could you make a video on how to make a button that pops up another thing inside with more buttons, like in zoom meeting, where you press the reaction button and it pop ups another view or whatever the name is. Thanks

    • @seanallen
      @seanallen  3 года назад +1

      I have that on my list of video ideas... it's just a VERY long list.

  • @raymundoortiz7269
    @raymundoortiz7269 2 года назад

    Nice!

  • @nam.ng0
    @nam.ng0 Год назад

    how can i make a custom back button?

  • @yazidali7071
    @yazidali7071 3 года назад

    Amazing tutorial.....

  • @gangalo68
    @gangalo68 3 года назад +2

    Great tutorials should use verbose code. Refactoring comes later.

  • @alcoop8729
    @alcoop8729 3 года назад

    idk if my swift is broken but none of this wants to work

  • @stevez5134
    @stevez5134 3 года назад

    setting the frame still throws me off. are we not wanting the button to be a lot larger on iPad???

    • @seanallen
      @seanallen  3 года назад +2

      I hear ya. I have to draw the line somewhere when it comes to keeping the tutorial simple and focused on the task at hand. Bringing in geometry readers to a tutorial about NavigationView is too much distraction in my opinion. Trust me... people ask about EVERY aspect of the code in tutorials, even when it's not the topic being discussed. Another note is that not ALL apps are required to expand to iPad/Mac. There are tons of iPhone only apps out there.

  • @jamesmartin46
    @jamesmartin46 4 месяца назад

    Is the completed source code available for this project?

    • @seanallen
      @seanallen  4 месяца назад

      Not for this project because NavigationView has been deprecated. I recommend watching my NavigationStack tutorial which was released in iOS 16 to replace NavigationView. - ruclips.net/video/oxp8Qqwr4AY/видео.html

  • @sharbel9624
    @sharbel9624 3 года назад

    LETS GO!

  • @SummerCroatia
    @SummerCroatia 2 года назад

    Two things you forgot to mention. How to navigate without previous screen stack and how to navigate with multiple stacks.

  • @HerrParabel
    @HerrParabel 2 года назад

    Nice, but doesn‘t work for iPads at all.

  • @neuearthmedia
    @neuearthmedia 3 года назад

    Hi Sean, I enjoyed your tutorial on multiple navigation screens. I’m now trying to add a video player to the last screen to navigate from the second screen making to root my splash screen. How can I add that video player on the last screen and play a video stored in the cloud? Thx!

  • @tariqAlmazyad
    @tariqAlmazyad 3 года назад

    Awesome tutorial . I wish you could one video where when you make ScrollView and the Large title in the navigation does not behave correctly when scrolling
    For Navigation configuration , I made my own View extension .
    here : -
    Extension: View {
    /// to modify the navBar attributes , title , bar color , and Translucent
    func navBarModifier(largeTitleColor: Color, smallTitleColor: Color,
    isTranslucent: Bool, barStyle: UIBarStyle,
    navBackgroundColor: Color, tintColor: Color,
    userInterfaceStyile: UIUserInterfaceStyle) -> some View {
    return self.onAppear{
    UINavigationBar.appearance().largeTitleTextAttributes = [.foregroundColor: largeTitleColor.uiColor()]
    UINavigationBar.appearance().titleTextAttributes = [.foregroundColor: smallTitleColor.uiColor()]
    UINavigationBar.appearance().isTranslucent = isTranslucent
    UINavigationBar.appearance().barStyle = barStyle
    UINavigationBar.appearance().backgroundColor = navBackgroundColor.uiColor()
    UINavigationBar.appearance().tintColor = tintColor.uiColor()
    UINavigationBar.appearance().overrideUserInterfaceStyle = userInterfaceStyile
    }
    }
    // HOW TO USE ?
    struct ContentView: View {
    var body: some View {
    NavigationView{
    Text("Text 123")
    .navBarModifier(largeTitleColor: .white,
    smallTitleColor: .white, isTranslucent: true,
    barStyle: .dark, navBackgroundColor: .clear,
    tintColor: .black, userInterfaceStyile: .dark)
    }
    }
    }
    }

  • @mhmtkrnlk
    @mhmtkrnlk 2 года назад

    I love most of the things about SwiftUI but this navigation system is absolute garbage. Think you are for some reason going to
    page1 -> page 2-> page3 then on page3 u want pop to root but cant u still have to go page2 even if you dont want. Think a framework that cant load pages based on however you want.

  • @IamTheGreatCornholioo
    @IamTheGreatCornholioo 2 года назад +1

    NavigationView / navigationLink is the only dumb crap I've seen so far in ios development, everything else is awesome, especially compared to android development

  • @ullchoenange4808
    @ullchoenange4808 3 года назад

    Awesome 😍💋 💝💖♥️❤️

  • @franjomaric7913
    @franjomaric7913 2 года назад

    Thank you man !