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
haranicle
September 16, 2017
Technology
440
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.7k
iOS8の Custom Keyboard について
haranicle
2
1.4k
Other Decks in Technology
See All in Technology
[DroidKaigi 2026] Making UI specifications visible: Android UI development in the AI agent era supported by Compose Screenshot Testing and galleries
syarihu
0
580
Genie Code ワークショップ 基礎編 / Genie-Code-Workshop-fundamental
databricksjapan
PRO
0
360
データエンジニアの困りごとをDevinと一緒に解消する
10xinc
2
840
enechainの内製セルフサービスプラットフォーム
hiyosi
0
120
Redmine 7.0で私が開発した新機能の狙いと背景
vividtone
1
110
Beyond the Hype: Practical AI for Your Oracle Database with MCP
thatjeffsmith
1
270
Nav2、Nav3 ... はたまた自作?〜 作って理解する Nav3 の設計意図 〜 / Nav2, Nav3 ... or Build Your Own? — Understanding Nav3's design intent by building it from scratch
yanzm
0
250
Benchmarking Vector Databases: pgvector vs. LanceDB
tsho
0
140
Bet AI Day 2026丨How We Bet AI: AIとともに働く場をつくる
layerx
PRO
2
2.6k
Genie Code ワークショップ 応用編 / Genie-Code-Workshop-advanced
databricksjapan
PRO
0
360
全員がプロダクトへ向き合う組織を持続成長させるために——組織づくりのフライホイールと4象限 / The Flywheel Model and Four Quadrants for Organizational Design
hiro_torii
3
860
【視聴者参加型!】AWSセキュリティアンチパターンクイズ
syoshie
0
440
Featured
See All Featured
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
250
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.2k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.1k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.8k
Typedesign – Prime Four
hannesfritz
42
3.2k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Discover your Explorer Soul
emna__ayadi
2
1.3k
We Have a Design System, Now What?
morganepeng
55
8.3k
The Cost Of JavaScript in 2023
addyosmani
55
10k
Fireside Chat
paigeccino
42
4k
Amusing Abliteration
ianozsvald
1
290
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