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
多次元宇宙と画面遷移
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
haranicle
September 16, 2017
Technology
430
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.7k
bitFlyer ウォレット リニューアルの裏側
haranicle
0
190
ハッピーな開発チームを築くために iOSエンジニアがしたこと
haranicle
5
15k
Playground芸
haranicle
6
2k
I💖Xcode Plugins
haranicle
0
170
Apple WatchのGlanceについて
haranicle
3
2.7k
Xcode6のFramework Templateについて
haranicle
2
2.7k
iOS8の Custom Keyboard について
haranicle
2
1.4k
Other Decks in Technology
See All in Technology
型は壁、Rustでもバグを直すな、表現できなくせよ
nwiizo
3
200
RAGの精度向上とエージェント活用
kintotechdev
2
120
最近評価が難しくなった
maroon8021
0
200
Claude Codeとハーネスについて考えてみる
oikon48
16
7k
Oracle Exadata Database Service on Cloud@Customer X11M (ExaDB-C@C) サービス概要
oracle4engineer
PRO
2
8.3k
フルAIで個人開発して学んだあれこれ / yuruai vol.1
isaoshimizu
0
170
Text-to-SQLをAgentCoreで実現し、生成されるSQLの精度を定量的に評価する
yakumo
2
470
次世代ランサムウェア対策の考察 / 20260704 Mitsutoshi Matsuo
shift_evolve
PRO
5
1.7k
AIで政治は変わるのか? — 中高生と考えたAI時代の民主主義(東海高校サタデープログラム)
eitarosuda
0
370
きのこカンファレンス2026_肩書きを外したとき私は誰か
yamasatimi
1
130
AI時代のエンジニアキャリアについて今一度考える
sakamoto_582
1
950
MySQL & MySQL HeatWave Report - June 2026
freshdaz
0
300
Featured
See All Featured
The agentic SEO stack - context over prompts
schlessera
0
840
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
270
WENDY [Excerpt]
tessaabrams
11
38k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
210
Everyday Curiosity
cassininazir
0
250
First, design no harm
axbom
PRO
2
1.2k
The browser strikes back
jonoalderson
0
1.4k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.4k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
380
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Are puppies a ranking factor?
jonoalderson
1
3.7k
Embracing the Ebb and Flow
colly
88
5.1k
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