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
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.
2:36 This piece of information is what I needed. I was putting nav controllers inside each other like an idiot...
Happy to help!
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!
Thanks! Happy to help.
Android is much harder in my opinion. Apple nailed it when they introduced Swift.
changing the color of the buttons and the offset .. is what I needed. Thank you!
Happy to help!
God, this video helped me solve an issue that I've been trying to solve for days! Thanks for the clear tutorial Sean!
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.
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
Great tutorial. Like the fact you show directly what you change in your code in the preview.
Glad you like it!
Your videos makes understanding swift UI concept very easy. 👍
Glad to hear it, Nilesh!
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 :)
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 :)
and I'm actually learning, when you say "and now resume - see, there's the green three" but there's a green 2 :D
Glad you're enjoying my teaching style!
Thanks so much dude, this is exactly what I needed!
Glad I could help!
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 👍
Interesting to hear how these work on Playgrounds as I've never tried that.... Glad it was helpful!
This Video really cleared things up for me. Thanks
Happy to help, Clay.
Nice segue to the commercial at the end of the video
Great video, Sean. One thing can be helpful how to pop to root view.
It's on my video to-do list!
Guru ji Pranam . Love from India
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...
Thank you so much for making this video.
Glad it was helpful 👍
Nice tutorial! At first, I thought Gervonta Davis retired and started programming RUclips.
Thank you!🙏
Happy to help!
awesome video!
Glad you enjoyed it!
Thank you so much!!! Amazing teaching style.
Thanks Sean. You helped me a lot)
Happy to help!
Great content Sean! Thanks for a great refresher.
Happy to help, Brad.
On the point tutorial. Very useful for an Android developer like me who is currently porting his app to iOS 😁
Glad it was helpful!
thanks your tutorials is really helpful
Cool lesson Sean.... Thank you for sharing
Nice thanks for this presentation you are awesome
Thanks for the kind words, Jennifer!
a very helpful tutorial thanks Sean
awesome tutorial
Super, Super clear tutorial .. Thank you so much !
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 .
Simply, Thank you! You are awesome. Liked and subscribed.
Thank you man!
Now with ios 17, i got problems with NavigationView, and now trying to see newer implementation like the Navigation Stack
I did a video all about NavigationStack here - ruclips.net/video/oxp8Qqwr4AY/видео.html
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.
nice work
Is there some way to pass to button view destination like a color or font size?
.net has a good implementation called shell which creates a naivgation drawer on both ios and andriod but performace of shell is slow
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
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?
Is it necessary to have them in one view file? I have the code navigating in between different view files
Thank you so much!!
how to navigate between branched views as we do in storyboard. because this is completely sequential.
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
What about Nested NavigationView? how to return to the RootContoller?
Good tutorial for an Android developer who started to learn ios dev as well :)
But how about deep link? Is it included in NavigationView?
Best timing as usual :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
I would also like to know how to do this. I’ve been trying things all day.
Swift ui falls down at navigation should have a simple navigation drawer abilitie but doenst
My preview keeps crashing. What should I do?
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
I have that on my list of video ideas... it's just a VERY long list.
Nice!
how can i make a custom back button?
Amazing tutorial.....
Happy to help!
Great tutorials should use verbose code. Refactoring comes later.
idk if my swift is broken but none of this wants to work
setting the frame still throws me off. are we not wanting the button to be a lot larger on iPad???
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.
Is the completed source code available for this project?
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
LETS GO!
Two things you forgot to mention. How to navigate without previous screen stack and how to navigate with multiple stacks.
Nice, but doesn‘t work for iPads at all.
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!
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)
}
}
}
}
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.
NavigationView / navigationLink is the only dumb crap I've seen so far in ios development, everything else is awesome, especially compared to android development
Awesome 😍💋 💝💖♥️❤️
Thank you man !