Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Playing Sheet presentation style on iOS 13
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Shin Yamamoto
July 24, 2019
Programming
680
0
Share
Playing Sheet presentation style on iOS 13
Shin Yamamoto
July 24, 2019
More Decks by Shin Yamamoto
See All by Shin Yamamoto
Meet CoreDevice and devicectl
scenee
0
600
DocCのドキュメントをGithub Pagesで公開する
scenee
2
700
SwiftライブラリのObjC対応における落とし穴と回避策
scenee
0
330
Testing a constraint-based layout of UIView
scenee
1
1.3k
Fluid Interfacesの実践
scenee
4
1.6k
Introducing Relax
scenee
0
610
Potatotips#7: Box C String Tip
scenee
0
2.8k
Other Decks in Programming
See All in Programming
ハーネスエンジニアリングにどう向き合うか 〜ルールファイルを超えて開発プロセスを設計する〜 / How to approach harness engineering
rkaga
23
13k
運転動画を検索可能にする〜Cosmos-Embed1とDatabricks Vector Searchで〜/cosmos-embed1-databricks-vector-search
studio_graph
0
160
ローカルで稼働するAI エージェントを超えて / beyond-local-ai-agents
gawa
3
280
t *testing.T は どこからやってくるの?
otakakot
1
660
How Swift's Type System Guides AI Agents
koher
0
270
의존성 주입과 모듈화
fornewid
0
140
GitHubCopilotCLIをはじめよう.pdf
htkym
0
180
SREに優しいTerraform構成 modulesとstateの組み方
hiyanger
2
130
Coding as Prompting Since 2025
ragingwind
0
830
Claude Codeをカスタムして自分だけのClaude Codeを作ろう
terisuke
0
140
Radical Imagining - LIFT 2025-2027 Policy Agenda
lift1998
0
370
JOAI2026 1st solution - heron0519 -
heron0519
0
140
Featured
See All Featured
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.6k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
150
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
370
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
How to Ace a Technical Interview
jacobian
281
24k
Building the Perfect Custom Keyboard
takai
2
730
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
210
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.5k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
150
Writing Fast Ruby
sferik
630
63k
Transcript
Playing Sheet presentation style on iOS 13 Potatotips #63 19/7/24
@SmartNews Shin Yamamoto @scenee
• iOS Developer • Freelancer • Creator of FloatingPanel Hi,
I’m @scenee! https://github.com/SCENEE/FloatingPanel
What’s Sheet presentation style?
Sheet presentation style • New presentation style from iOS 13
• Mail.app • .pageSheet,.formSheet • Default style in iOS 13 (SDK) ◦ .automatic ≒.pageSheet
Sheet Fullscreen Content Non immersive 非没入型 Immersive 没入型 Dismiss •
Tapping a button • Swiping down (optional) Tapping a button Modality: Sheet and Fullscreen https://developer.apple.com/design/human-interface-guidelines/ios/app-architecture/modality/
Migration notes • Add a button to dismiss • Care
the swipe-to-dismiss action • View Controller life cycle
Presenting View Controller Life Cycle Sheet Fullscreen viewWillAppear -- Invoked
viewDidAppear -- Invoked viewWillDisappear -- Invoked viewDidDisappear -- Invoked
Presented View Controller Life Cycle Sheet Fullscreen viewWillAppear Invoked Invoked
viewDidAppear Invoked Invoked viewWillDisappear Multiple invoked Invoked viewDidDisappear Invoked Invoked
WWDC19 Sessions • What’s New in iOS Design https://developer.apple.com/videos/play/wwdc2019/808 •
Modernizing Your UI for iOS 13 https://developer.apple.com/videos/play/wwdc2019/224
Sheet presentation features • Swipe to dismiss • Sheet bounce
• Scroll integration
Sheet features • Swipe to dismiss (customizable) • Sheet bounce
• Scroll integration
• Disable to dismiss ◦ Set .isModalnPresentation to true ◦
UIAdaptivePresentationControllerDelegate ▪ Return false in presentationControllerShouldDismiss Swipe to dismiss
• Detect a dismiss action ◦ UIAdaptivePresentationControllerDelegate ▪ presentationControllerDidAttempToDismiss ▪
presentationControllerWillDismiss ▪ presentationControllerDidDismiss Swipe to dismiss
I wonder how to add Mail.app-like UI to suspend and
resume a task
Demo
How to implement • Dismiss buttons in NavigationBar on swiping
up
How to implement • Stop dropping a modal view at
a position Y.
How to implement • Change state of the presenting view
controller
None
None
Recap • Sheet presentation style as default in iOS 13
• A few APIs to customize the behavior • Imitate a task suspending UI using presentedView
Thanks you!