Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
多次元宇宙と画面遷移
Search
haranicle
September 16, 2017
Technology
460
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
多次元宇宙と画面遷移
https://iosdc.jp/2017/
haranicle
September 16, 2017
More Decks by haranicle
See All by haranicle
戦略的手抜きをするためのデザインシステム運用
haranicle
1
3.8k
bitFlyer ウォレット リニューアルの裏側
haranicle
0
190
ハッピーな開発チームを築くために iOSエンジニアがしたこと
haranicle
5
15k
Playground芸
haranicle
6
2k
I💖Xcode Plugins
haranicle
0
180
Apple WatchのGlanceについて
haranicle
3
2.8k
Xcode6のFramework Templateについて
haranicle
2
2.8k
iOS8の Custom Keyboard について
haranicle
2
1.4k
Other Decks in Technology
See All in Technology
視野はAIに、視座は人に / ai-for-breadth-humans-for-perspective
nkzn
6
2.7k
Vibe-to-Spec開発_実践ガイド
happysamurai294
0
140
これだけは抑えておきたい!後悔しない re:Invent の過ごし方 / AWS re:Invent 2026 prestudy
kinunori
2
640
今から始めるAWS環境の暗号移行 - ポスト量子時代に備える
sato4mi
0
140
AI AgentによるEmbedded SREの取り組み
tgidgd
1
320
詳解 never 型 - ボトム型の性質を深掘り
nealle
0
120
生き様としてのSRE
hokkai7go
1
150
Deep Data Security 機能解説
oracle4engineer
PRO
3
980
データマネジメント × 法務で作りあげる、 freeeの新しいデータガバナンスへの軌跡
freee
PRO
3
610
攻撃 3 時間 vs 復旧 10 時間。アクセスキー流出の非対称性を体感するために CTF を作った話
kazzpapa3
1
130
cdk deployとcdkd deploy、実際にデプロイして5倍速近くの差を実測した
yama3133
1
150
Content Mapper APIの応用例~CSS Modules、言語ファイル~
uhyo
2
480
Featured
See All Featured
Building the Perfect Custom Keyboard
takai
2
930
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k
Testing 201, or: Great Expectations
jmmastey
46
8.4k
How to Talk to Developers About Accessibility
jct
2
600
The World Runs on Bad Software
bkeepers
PRO
72
12k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
BBQ
matthewcrist
90
10k
ラッコキーワード サービス紹介資料
rakko
5
5.6M
Reflections from 52 weeks, 52 projects
jeffersonlam
356
22k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
760
Designing for humans not robots
tammielis
254
26k
Transcript
ଟ࣍ݩӉͱը໘ભҠ !IBSBOJDMF
ӉͬͯԿ
զʑ͕͍Δੈք
ະͩݟ͍͍ͩͤͯͳ͍ ͋ΔཧʹΑͬͯ ͯ͢ܭࢉͰ͖Δ
࣍ݩͬͯԿ
ࣗ༝
Y
Y Z
Y Z [
Y
None
Y [
ਓ͕ؒ؍ଌͰ͖Δͷ ࣍ݩ
খ͍࣭͞ͷࢹʹͳΔͱ ߴ͍࣍ݩΛѲͰ͖Δ
࣭ͷ࠷খ୯ҐͰ͋Δૉཻࢠʹ ͍ͭͯܭࢉ͢Δͱʜ
ӉͬͯԿ࣍ݩ
͕͑ग़͍ͯͳ͍ ࣍ݩ͔͠Εͳ͍
J04ΞϓϦԿ࣍ݩ
Ӊͱಉ༷ J04ΞϓϦʹ࣍ݩ͕͋Δ
ίʔυϨϕϧͷ࣍ݩ J04ΞϓϦԿ࣍ݩ
ཧ্ ίʔυϕʔεͷதͷมͷݸ ࣍ݩ͕ଘࡏ͢ΔՄೳੑ͕͋Δ
มʹੜଘظ͕ؒ͋Δ J04ΞϓϦͱಉ͡ ੜଘظؒͷͷ͚ͩߟ͑Δ
w"QQ%FMFHBUFͷม w3PPU7JFX$POUSPMMFSͷม wγϯάϧτϯ͕͍࣋ͬͯΔม ͜ΕΒͷݸΞϓϦͷ࣍ݩ
ը໘ભҠͷ࣍ݩ J04ΞϓϦԿ࣍ݩ
ը໘ભҠͷछྨ
Ϟʔμϧ
υϦϧμϯ
εΠον
ϞʔμϧυϦϧμϯεΠον ͲΕભҠࣗମ࣍ݩ͚ͩͲ
෭࡞༻Λߟྀ͢Δͱ ը໘ભҠͷ࣍ݩ ϞʔμϧυϦϧμϯεΠον
J04ΞϓϦଟ͘ͷ࣍ݩΛ࣋ͭͷͰ 3PPU7JFX$POUSPMMFSεΠον ͡Όͳ͍ͱදݱ͖͠Εͳ͍
3PPU7JFX$POUSPMMFSৗʹ $POUBJOFS7JFX$POUSPMMFS
3PPU7JFX$POUSPMMFS ͷ࣮
class RootViewController: UIViewController { enum State { case splash case
home } private var currentViewController: UIViewController? func switchState(to state: State) { if let vc = currentViewController { vc.willMove(toParentViewController: nil) vc.view.removeFromSuperview() vc.removeFromParentViewController() } switch state { case .splash: currentViewController = SplashViewController() case .home: currentViewController = homeNavigationViewController } addChildViewController(currentViewController!) view.addSubview(currentViewController!.view) currentViewController!.didMove(toParentViewController: self) } let homeNavigationViewController = UINavigationController(rootViewController: HomeViewController() } TUBUFʹԠͯ͡ DIJME7JFX$POUSPMMFSΛ εΠον͢Δ
class RootViewController: UIViewController { enum State { case splash case
home } private var currentViewController: UIViewController? func switchState(to state: State) { if let cvc = currentViewController { cvc.willMove(toParentViewController: nil) cvc.view.removeFromSuperview() cvc.removeFromParentViewController() } switch state { case .splash: currentViewController = SplashViewController() case .home: currentViewController = homeNavigationViewController } addChildViewController(currentViewController!) view.addSubview(currentViewController!.view) currentViewController!.didMove(toParentViewController: self) } let homeNavigationViewController = UINavigationController(rootViewController: HomeViewController()) } υϦϧμϯͷ֊Λҡ͍࣋ͨ͠ 7JFX$POUSPMMFS εΠονͰഁغ͞Εͳ͍Α͏ʹ͢Δ
class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? let rootViewController
= RootViewController() func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { window = UIWindow() window?.rootViewController = rootViewController window?.makeKeyAndVisible() return true } func somethingHappens() { rootViewController.switchState(to: .home) } } 3PPU7JFX$POUSPMMFSΛ͓࣋ͬͯ͘ దͳλΠϛϯάͰTUBUFΛΓସ͑Δ
ΞϓϦͷ࣍ݩͷ੍ޚͱ 3PPU7JFX$POUSPMMFSͷ੍ޚʹ ࣏҆Λ
࣍ݩΛ͑ͨը໘ભҠ
ྫ 63-εΩʔϜύλʔϯ
͍·ίί
͍·ίί NZBQQEPTPNFUIJOH
͍·ίί ίί·Ͱ ભҠ͍ͤͨ͞ ͬͨΒ ࠓ·Ͱͳ͔ͬͨը໘
མͪண͍ͯ 3PPU7JFX$POUSPMMFSͷεΠον ͱ υϦϧμϯͷߏங
rootViewController.switchState(to: .home) let vcList = [ FirstViewController(), SecondViewController() ] rootViewController.homeNavigationViewController.setViewControllers(
vcList, animated: false) 3PPU7JFX$POUSPMMFSͷεΠον υϦϧμϯͷߏங υϦϧμϯͷ֊ҡ࣋ͨ͠7JFX$POUSPMMFS
ྫ εʔύʔΔύλʔϯ
͍·ίί
͍·ίί ίί·ͰΓ͍ͨ
6OXJOE4FHVFΛ͏
Γઌͷ7JFX$POUSPMMFSʹ 6OXJOE4FHVFͷϝιουΛ ࣮͢Δ͚ͩ J04͕ը໘ભҠͷ֊Λۦ্͚͕ͬͯ ۙͷΓઌΛݟ͚ͭͯ ભҠͯ͘͠ΕΔ
࣍ݩͱྑ͘ͳͬͯ ࠷ߴͷը໘ભҠϥΠϑΛ ָ͠͏
None