Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
多次元宇宙と画面遷移
haranicle
September 16, 2017
Technology
0
110
多次元宇宙と画面遷移
https://iosdc.jp/2017/
haranicle
September 16, 2017
Tweet
Share
More Decks by haranicle
See All by haranicle
戦略的手抜きをするためのデザインシステム運用
haranicle
1
2.4k
bitFlyer ウォレット リニューアルの裏側
haranicle
0
71
ハッピーな開発チームを築くために iOSエンジニアがしたこと
haranicle
5
14k
Playground芸
haranicle
6
1.6k
I💖Xcode Plugins
haranicle
0
90
Apple WatchのGlanceについて
haranicle
3
2.4k
Xcode6のFramework Templateについて
haranicle
2
2.6k
iOS8の Custom Keyboard について
haranicle
2
980
Other Decks in Technology
See All in Technology
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
3
9k
ノーメンテナンス運用実現のためのノウハウ/ColoplTech-05-02
colopl
0
190
Security Hub のマルチアカウント 管理・運用をサーバレスでやってみる
ch6noota
0
790
The application of formal methods in Kafka reliability engineering
line_developers
PRO
1
160
ラブグラフ紹介資料 〜プロダクト解体新書〜 / Lovegraph Product Deck
lovegraph
0
220
機械学習システムアーキテクチャ入門 #1
asei
3
1.2k
UWBを使ってみた
norioikedo
0
400
ROS再入門-はじめてのSLAM-
miura55
0
400
#JP_Stripes Sapporo Stripeの活用例を色々ご紹介します!
miu_crescent
0
110
220628 「Google AppSheet」タスク管理アプリをライブ作成 吉積情報伊藤さん
comucal
PRO
0
170
アジャイル推進活動におけるBeAgileへの変化の兆し/Signs_of_Change_to_"Be_Agile"_in_Agile_Promotion_Activities
m_iyama
0
170
20220622_FinJAWS_あのときにAWSがあったらこうできた
taketakekaho
0
110
Featured
See All Featured
A designer walks into a library…
pauljervisheath
196
16k
The Illustrated Children's Guide to Kubernetes
chrisshort
15
36k
The Brand Is Dead. Long Live the Brand.
mthomps
46
2.7k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
181
15k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_i
23
15k
Creatively Recalculating Your Daily Design Routine
revolveconf
207
10k
Faster Mobile Websites
deanohume
294
28k
Product Roadmaps are Hard
iamctodd
34
6.5k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
212
20k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
12
920
A Philosophy of Restraint
colly
192
15k
Imperfection Machines: The Place of Print at Facebook
scottboms
253
12k
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