SwiftUI Navigation - NavigationView & NavigationLink Tutorial
Вставка
- Опубліковано 29 гру 2020
- Head to squarespace.com/seanallen 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.teachable.com/
Twitter:
/ seanallen_dev
Link to my book - How I Became an iOS Developer:
gumroad.com/l/sean-allen-origin
Hired.com:
hired.com/x/1n01g
Check out my podcast, iOS Dev Discussions:
itunes.apple.com/us/podcast/i...
Book and learning recommendations that help out the channel if you decide to purchase (Affiliate Links):
Ray Wenderlich Books:
store.raywenderlich.com/a/208...
Ray Wenderlich Videos:
store.raywenderlich.com/a/208...
Paul Hudson's Hacking With Swift:
gumroad.com/a/762098803
Learn Advanced Swift Here:
gumroad.com/a/656585843
Links to my iOS Dev Setup & iOS Dev Book Recommendations
www.amazon.com/shop/seanallen
#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!
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.
God, this video helped me solve an issue that I've been trying to solve for days! Thanks for the clear tutorial Sean!
Great tutorial. Like the fact you show directly what you change in your code in the preview.
Glad you like it!
Best timing as usual :3
Thank you so much!!! Amazing teaching style.
Your videos makes understanding swift UI concept very easy. 👍
Glad to hear it, Nilesh!
Cool lesson Sean.... Thank you for sharing
Super, Super clear tutorial .. Thank you so much !
Simply, Thank you! You are awesome. Liked and subscribed.
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!
a very helpful tutorial thanks Sean
thanks your tutorials is really helpful
Great content Sean! Thanks for a great refresher.
Happy to help, Brad.
Thank you man !
awesome tutorial
This Video really cleared things up for me. Thanks
Happy to help, Clay.
Thanks so much dude, this is exactly what I needed!
Glad I could help!
Nice segue to the commercial at the end of the video
Guru ji Pranam . Love from India
Thank you so much!!
Thank you so much for making this video.
Glad it was helpful 👍
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 Sean. You helped me a lot)
Happy to help!
nice work
Nice!
Nice thanks for this presentation you are awesome
Thanks for the kind words, Jennifer!
Thank you!🙏
Happy to help!
awesome video!
Glad you enjoyed it!
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!
LETS GO!
Amazing tutorial.....
Happy to help!
Great video, Sean. One thing can be helpful how to pop to root view.
It's on my video to-do list!
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
Nice tutorial! At first, I thought Gervonta Davis retired and started programming UA-cam.
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 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
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 .
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?
Good tutorial for an Android developer who started to learn ios dev as well :)
But how about deep link? Is it included in NavigationView?
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
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...
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.
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
What about Nested NavigationView? how to return to the RootContoller?
Is it necessary to have them in one view file? I have the code navigating in between different view files
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.
how can i make a custom back button?
how to navigate between branched views as we do in storyboard. because this is completely sequential.
My preview keeps crashing. What should I do?
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
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)
}
}
}
}
Great tutorials should use verbose code. Refactoring comes later.
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 - ua-cam.com/video/oxp8Qqwr4AY/v-deo.html
idk if my swift is broken but none of this wants to work
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!
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.
Two things you forgot to mention. How to navigate without previous screen stack and how to navigate with multiple stacks.
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. - ua-cam.com/video/oxp8Qqwr4AY/v-deo.html
Nice, but doesn‘t work for iPads at all.
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!