-
Notifications
You must be signed in to change notification settings - Fork 135
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Deploying to gh-pages from @ pointfreeco/swiftui-navigation@7ab04c6 🚀
- Loading branch information
0 parents
commit 691a4e1
Showing
67,021 changed files
with
71,553 additions
and
0 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
9 changes: 9 additions & 0 deletions
9
0.4.0/css/documentation-topic~topic~tutorials-overview.82acfe22.css
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
{"seeAlsoSections":[{"title":"Related Documentation","abstract":[{"type":"text","text":"The collection of videos from "},{"type":"reference","isActive":true,"identifier":"https:\/\/www.pointfree.co"},{"type":"text","text":" that dive deep into the"},{"type":"text","text":" "},{"type":"text","text":"development of the library."}],"identifiers":["https:\/\/www.pointfree.co\/collections\/swiftui\/navigation"]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"primaryContentSections":[{"kind":"content","content":[{"anchor":"Additional-Resources","level":2,"type":"heading","text":"Additional Resources"},{"type":"unorderedList","items":[{"content":[{"type":"paragraph","inlineContent":[{"type":"reference","isActive":true,"identifier":"https:\/\/github.com\/pointfreeco\/swiftui-navigation"}]}]},{"content":[{"type":"paragraph","inlineContent":[{"type":"reference","isActive":true,"identifier":"https:\/\/github.com\/pointfreeco\/swiftui-navigation\/discussions"}]}]},{"content":[{"type":"paragraph","inlineContent":[{"type":"reference","isActive":true,"identifier":"https:\/\/www.pointfree.co\/collections\/swiftui\/navigation"}]}]}]},{"anchor":"Overview","level":2,"type":"heading","text":"Overview"},{"type":"paragraph","inlineContent":[{"type":"text","text":"SwiftUI comes with many forms of navigation (tabs, alerts, dialogs, modal sheets, popovers,"},{"type":"text","text":" "},{"type":"text","text":"navigation links, and more), and each comes with a few ways to construct them. These ways roughly"},{"type":"text","text":" "},{"type":"text","text":"fall in two categories:"}]},{"type":"unorderedList","items":[{"content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"“Fire-and-forget”: These are initializers and methods that do not take binding arguments, which"},{"type":"text","text":" "},{"type":"text","text":"means SwiftUI fully manages navigation state internally. This makes it is easy to get something"},{"type":"text","text":" "},{"type":"text","text":"on the screen quickly, but you also have no programmatic control over the navigation. Examples"},{"type":"text","text":" "},{"type":"text","text":"of this are the initializers on "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/swiftui\/tabview\/init(content:)"},{"type":"text","text":" and"},{"type":"text","text":" "},{"type":"reference","isActive":true,"identifier":"https:\/\/developer.apple.com\/documentation\/swiftui\/navigationlink\/init(destination:label:)-27n7s"},{"type":"text","text":" that do not take a binding."}]}]},{"content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"“State-driven”: Most other initializers and methods do take a binding, which means you can"},{"type":"text","text":" "},{"type":"text","text":"mutate state in your domain to tell SwiftUI when it should activate or deactivate navigation."},{"type":"text","text":" "},{"type":"text","text":"Using these APIs is more complicated than the “fire-and-forget” style, but doing so instantly"},{"type":"text","text":" "},{"type":"text","text":"gives you the ability to deep-link into any state of your application by just constructing a"},{"type":"text","text":" "},{"type":"text","text":"piece of data, handing it to a SwiftUI view, and letting SwiftUI handle the rest."}]}]}]},{"type":"paragraph","inlineContent":[{"type":"text","text":"Navigation that is “state-driven” is the more powerful form of navigation, albeit slightly more"},{"type":"text","text":" "},{"type":"text","text":"complicated. To wield it correctly you must be able to model your domain as concisely as possible,"},{"type":"text","text":" "},{"type":"text","text":"and this usually means using enums."}]},{"type":"paragraph","inlineContent":[{"type":"text","text":"Unfortunately, SwiftUI does not ship with all of the tools necessary to model our domains with"},{"type":"text","text":" "},{"type":"text","text":"enums and make use of navigation APIs. This library bridges that gap by providing APIs that allow"},{"type":"text","text":" "},{"type":"text","text":"you to model your navigation destinations as an enum, and then drive navigation by a binding"},{"type":"text","text":" "},{"type":"text","text":"to that enum."}]}]}],"variants":[{"paths":["\/documentation\/swiftuinavigation"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/SwiftUINavigation\/documentation\/SwiftUINavigation","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Tools for making SwiftUI navigation simpler, more ergonomic and more precise."}],"kind":"symbol","metadata":{"roleHeading":"Framework","externalID":"SwiftUINavigation","title":"SwiftUINavigation","symbolKind":"module","role":"collection","modules":[{"name":"SwiftUINavigation"}]},"hierarchy":{"paths":[[]]},"topicSections":[{"title":"Essentials","identifiers":["doc:\/\/SwiftUINavigation\/documentation\/SwiftUINavigation\/WhatIsNavigation"]},{"title":"Tools","identifiers":["doc:\/\/SwiftUINavigation\/documentation\/SwiftUINavigation\/Navigation","doc:\/\/SwiftUINavigation\/documentation\/SwiftUINavigation\/SheetsPopoversCovers","doc:\/\/SwiftUINavigation\/documentation\/SwiftUINavigation\/AlertsDialogs","doc:\/\/SwiftUINavigation\/documentation\/SwiftUINavigation\/DestructuringViews","doc:\/\/SwiftUINavigation\/documentation\/SwiftUINavigation\/Bindings"]},{"title":"Structures","identifiers":["doc:\/\/SwiftUINavigation\/documentation\/SwiftUINavigation\/CaseLet","doc:\/\/SwiftUINavigation\/documentation\/SwiftUINavigation\/Default","doc:\/\/SwiftUINavigation\/documentation\/SwiftUINavigation\/IfCaseLet","doc:\/\/SwiftUINavigation\/documentation\/SwiftUINavigation\/IfLet","doc:\/\/SwiftUINavigation\/documentation\/SwiftUINavigation\/Switch","doc:\/\/SwiftUINavigation\/documentation\/SwiftUINavigation\/WithState"]}],"references":{"https://developer.apple.com/documentation/swiftui/tabview/init(content:)":{"title":"TabView","titleInlineContent":[{"type":"codeVoice","code":"TabView"}],"type":"link","identifier":"https:\/\/developer.apple.com\/documentation\/swiftui\/tabview\/init(content:)","url":"https:\/\/developer.apple.com\/documentation\/swiftui\/tabview\/init(content:)"},"doc://SwiftUINavigation/documentation/SwiftUINavigation/DestructuringViews":{"role":"article","title":"Destructuring views","abstract":[{"type":"text","text":"Learn how to use "},{"type":"reference","isActive":true,"identifier":"doc:\/\/SwiftUINavigation\/documentation\/SwiftUINavigation\/IfLet"},{"type":"text","text":", "},{"type":"reference","isActive":true,"identifier":"doc:\/\/SwiftUINavigation\/documentation\/SwiftUINavigation\/IfCaseLet"},{"type":"text","text":" and "},{"type":"reference","isActive":true,"identifier":"doc:\/\/SwiftUINavigation\/documentation\/SwiftUINavigation\/Switch"},{"type":"text","text":" views in order to destructure bindings into"},{"type":"text","text":" "},{"type":"text","text":"smaller parts."}],"identifier":"doc:\/\/SwiftUINavigation\/documentation\/SwiftUINavigation\/DestructuringViews","kind":"article","type":"topic","url":"\/documentation\/swiftuinavigation\/destructuringviews"},"doc://SwiftUINavigation/documentation/SwiftUINavigation/CaseLet":{"role":"symbol","title":"CaseLet","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"CaseLet"}],"abstract":[{"type":"text","text":"A view that handles a specific case of enum state in a "},{"type":"reference","isActive":true,"identifier":"doc:\/\/SwiftUINavigation\/documentation\/SwiftUINavigation\/Switch"},{"type":"text","text":"."}],"identifier":"doc:\/\/SwiftUINavigation\/documentation\/SwiftUINavigation\/CaseLet","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"CaseLet"}],"url":"\/documentation\/swiftuinavigation\/caselet"},"doc://SwiftUINavigation/documentation/SwiftUINavigation/WhatIsNavigation":{"role":"collectionGroup","title":"What is navigation?","abstract":[{"type":"text","text":"Learn how one can think of navigation as a domain modeling problem, and how that leads to the"},{"type":"text","text":" "},{"type":"text","text":"creation of concise and testable APIs for navigation."}],"identifier":"doc:\/\/SwiftUINavigation\/documentation\/SwiftUINavigation\/WhatIsNavigation","kind":"article","type":"topic","url":"\/documentation\/swiftuinavigation\/whatisnavigation"},"https://github.com/pointfreeco/swiftui-navigation/discussions":{"title":"Discussions","titleInlineContent":[{"type":"text","text":"Discussions"}],"type":"link","identifier":"https:\/\/github.com\/pointfreeco\/swiftui-navigation\/discussions","url":"https:\/\/github.com\/pointfreeco\/swiftui-navigation\/discussions"},"doc://SwiftUINavigation/documentation/SwiftUINavigation/AlertsDialogs":{"role":"article","title":"Alerts and dialogs","abstract":[{"type":"text","text":"Learn how to present alerts and confirmation dialogs in a concise and testable manner."}],"identifier":"doc:\/\/SwiftUINavigation\/documentation\/SwiftUINavigation\/AlertsDialogs","kind":"article","type":"topic","url":"\/documentation\/swiftuinavigation\/alertsdialogs"},"doc://SwiftUINavigation/documentation/SwiftUINavigation/IfLet":{"role":"symbol","title":"IfLet","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"IfLet"}],"abstract":[{"type":"text","text":"A view that computes content by unwrapping a binding to an optional and passing a non-optional"},{"type":"text","text":" "},{"type":"text","text":"binding to its content closure."}],"identifier":"doc:\/\/SwiftUINavigation\/documentation\/SwiftUINavigation\/IfLet","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"IfLet"}],"url":"\/documentation\/swiftuinavigation\/iflet"},"doc://SwiftUINavigation/documentation/SwiftUINavigation/Default":{"role":"symbol","title":"Default","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Default"}],"abstract":[{"type":"text","text":"A view that covers any cases that aren’t explicitly addressed in a "},{"type":"reference","isActive":true,"identifier":"doc:\/\/SwiftUINavigation\/documentation\/SwiftUINavigation\/Switch"},{"type":"text","text":"."}],"identifier":"doc:\/\/SwiftUINavigation\/documentation\/SwiftUINavigation\/Default","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Default"}],"url":"\/documentation\/swiftuinavigation\/default"},"https://www.pointfree.co/collections/swiftui/navigation":{"title":"Point-Free Videos","titleInlineContent":[{"type":"text","text":"Point-Free Videos"}],"type":"link","identifier":"https:\/\/www.pointfree.co\/collections\/swiftui\/navigation","url":"https:\/\/www.pointfree.co\/collections\/swiftui\/navigation"},"doc://SwiftUINavigation/documentation/SwiftUINavigation/Switch":{"role":"symbol","title":"Switch","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Switch"}],"abstract":[{"type":"text","text":"A view that can switch over a binding of enum state and exhaustively handle each case."}],"identifier":"doc:\/\/SwiftUINavigation\/documentation\/SwiftUINavigation\/Switch","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Switch"}],"url":"\/documentation\/swiftuinavigation\/switch"},"doc://SwiftUINavigation/documentation/SwiftUINavigation/Bindings":{"role":"article","title":"Bindings","abstract":[{"type":"text","text":"Learn how to manage certain view state, such as "},{"type":"codeVoice","code":"@FocusState"},{"type":"text","text":" directly in your observable object."}],"identifier":"doc:\/\/SwiftUINavigation\/documentation\/SwiftUINavigation\/Bindings","kind":"article","type":"topic","url":"\/documentation\/swiftuinavigation\/bindings"},"doc://SwiftUINavigation/documentation/SwiftUINavigation/IfCaseLet":{"role":"symbol","title":"IfCaseLet","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"IfCaseLet"}],"abstract":[{"type":"text","text":"A view that computes content by extracting a case from a binding to an enum and passing a"},{"type":"text","text":" "},{"type":"text","text":"non-optional binding to the case’s associated value to its content closure."}],"identifier":"doc:\/\/SwiftUINavigation\/documentation\/SwiftUINavigation\/IfCaseLet","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"IfCaseLet"}],"url":"\/documentation\/swiftuinavigation\/ifcaselet"},"doc://SwiftUINavigation/documentation/SwiftUINavigation/WithState":{"role":"symbol","title":"WithState","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"WithState"}],"abstract":[{"type":"text","text":"A container view that provides a binding to another view."}],"identifier":"doc:\/\/SwiftUINavigation\/documentation\/SwiftUINavigation\/WithState","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"WithState"}],"url":"\/documentation\/swiftuinavigation\/withstate"},"doc://SwiftUINavigation/documentation/SwiftUINavigation/Navigation":{"role":"article","title":"Navigation links and destinations","abstract":[{"type":"text","text":"Learn how to drive navigation in "},{"type":"codeVoice","code":"NavigationView"},{"type":"text","text":" and "},{"type":"codeVoice","code":"NavigationStack"},{"type":"text","text":" in a concise and testable"},{"type":"text","text":" "},{"type":"text","text":"manner."}],"identifier":"doc:\/\/SwiftUINavigation\/documentation\/SwiftUINavigation\/Navigation","kind":"article","type":"topic","url":"\/documentation\/swiftuinavigation\/navigation"},"doc://SwiftUINavigation/documentation/SwiftUINavigation":{"role":"collection","title":"SwiftUINavigation","abstract":[{"type":"text","text":"Tools for making SwiftUI navigation simpler, more ergonomic and more precise."}],"identifier":"doc:\/\/SwiftUINavigation\/documentation\/SwiftUINavigation","kind":"symbol","type":"topic","url":"\/documentation\/swiftuinavigation"},"https://github.com/pointfreeco/swiftui-navigation":{"title":"GitHub Repo","titleInlineContent":[{"type":"text","text":"GitHub Repo"}],"type":"link","identifier":"https:\/\/github.com\/pointfreeco\/swiftui-navigation","url":"https:\/\/github.com\/pointfreeco\/swiftui-navigation"},"doc://SwiftUINavigation/documentation/SwiftUINavigation/SheetsPopoversCovers":{"role":"article","title":"Sheets, popovers, and covers","abstract":[{"type":"text","text":"Learn how to present sheets, popovers and covers in a concise and testable manner."}],"identifier":"doc:\/\/SwiftUINavigation\/documentation\/SwiftUINavigation\/SheetsPopoversCovers","kind":"article","type":"topic","url":"\/documentation\/swiftuinavigation\/sheetspopoverscovers"},"https://developer.apple.com/documentation/swiftui/navigationlink/init(destination:label:)-27n7s":{"title":"NavigationLink","titleInlineContent":[{"type":"codeVoice","code":"NavigationLink"}],"type":"link","identifier":"https:\/\/developer.apple.com\/documentation\/swiftui\/navigationlink\/init(destination:label:)-27n7s","url":"https:\/\/developer.apple.com\/documentation\/swiftui\/navigationlink\/init(destination:label:)-27n7s"}}} |
Oops, something went wrong.