画面遷移のときに値渡したりもらったりするところ、もっと簡単に書きたいよね!のアップデート。
ը໘ભҠͱࢲʢiOSʣॴ ༑ଠ @tokoromiOS App Programerpotatotips-19
View Slide
ॴ༑ଠ@tokorom
ͪΐ͏Ͳ1લୈ6ճ potatotips
iOSͷը໘ભҠͱࢲॴ ༑ଠ @tokoromiOS App Programerpotatotips-19
ը໘ભҠͷྺ࢙
ը໘ભҠͷྺ࢙•لݩલɿStoryboardొલ•لݩޙɿStoryboardొҎޙ•৽࣌ɿcontext࣌ʁ
StoryboardొҎલͷը໘ભҠlet selectVC = SelectItemVC()selectVC.targetUser = self.userself.presentViewController(selectVC, animated: true,completion: nil)ભҠઌʹΛ͢
StoryboardొҎલͷը໘ભҠselectVC.delegate = selfextension MyViewController: SelectItemVCDelegate {override func itemDidSelect(item: Item) {// get an item!}}ભҠઌ͔ΒΛΒ͏
Storyboard࣌ͷը໘ભҠself.performSegueWithIdentifier("SelectItems", sender: nil)override func prepareForSegue(segue: UIStoryboardSegue,sender: AnyObject?) {switch segue.identifier {case: "SelectItems":if let selectVC = segue.destinationViewController as?SelectItemsViewController {selectVC.user = self.user}ભҠઌʹΛ͢
Storyboard࣌ͷը໘ભҠ@IBAction func unwind(segue: UIStoryboardSegue) {if let vc = segue.sourceViewController as?SelectitemVC {let item = vc.selectedItem}}ભҠઌ͔ΒΛΒ͏
WatchKitͰͷྫself.presentControllerWithName("SelectItem", context: user)override func awakeWithContext(context: AnyObject?) {super.awakeWithContext(context)self.user = context as? User}ભҠઌʹΛ͢
WatchKitͷcontextͷྑ͍ͱ͜Ζ•ૄ݁߹ʂ•Λ͢ͱ͖ʹભҠݩͱભҠઌ͕ґଘ͕ؔͰ͖ͳ͍•ಉ͡ΠϯλʔϑΣʔεͰͳΜͰͤΔ•Optional BidingͳͲͰ؆୯/҆શʹड͚औΕΔ
ͳ͓…̍ϲ݄લͷ΅͘
Swift࣌ΈΜͳ͜͏ॻ͖͍ͨΑͶself.performSegueWithIdentifier("ItemSelect", context: user){ (item: Item) inlet selectedItem = item}ભҠઌʹΛ͢ˍΒ͏
ͦͯ͠ࠓʂhttps://github.com/tokorom/SegueContext
͜ͷॻ͖ํɺͰ͖·͢ʂself.performSegueWithIdentifier("ItemSelect", context: user){ (item: Item) inlet selectedItem = item}ભҠઌʹΛ͢ˍΒ͏
UIViewController+Contextͷྑ͍ͱ͜•ૄ݁߹ʂ•SwiftͰܕ҆શͳͷड͚͠•NavigationControllerͱ͔TabBarControllerΛڬΜͰͬͪΌΒ•ΧελϜSegueͳͲෳࡶͳભҠͰ͑Δ•Apple Way͔ΒͣΕ͗͢ͳ͍ʁ
More InformationYuta ToKoRoiOS App ProgramerTwitter @tokoromhttp://www.tokoro.me/https://github.com/tokorom/SegueContext