Upgrade to Pro — share decks privately, control downloads, hide ads and more …

画面遷移と私(iOS)

tokorom
July 14, 2015

 画面遷移と私(iOS)

画面遷移のときに値渡したりもらったりするところ、もっと簡単に書きたいよね!のアップデート。

tokorom

July 14, 2015
Tweet

More Decks by tokorom

Other Decks in Programming

Transcript

  1. ը໘ભҠͱࢲʢiOSʣ
    ॴ ༑ଠ @tokorom

    iOS App Programer
    potatotips-19

    View Slide

  2. ॴ༑ଠ
    @tokorom

    View Slide

  3. ͪΐ͏Ͳ1೥લ
    ୈ6ճ potatotips

    View Slide

  4. iOSͷը໘ભҠͱࢲ
    ॴ ༑ଠ @tokorom

    iOS App Programer
    potatotips-19

    View Slide

  5. ը໘ભҠͷྺ࢙

    View Slide

  6. ը໘ભҠͷྺ࢙
    •لݩલɿStoryboardొ৔લ
    •لݩޙɿStoryboardొ৔Ҏޙ
    •৽࣌୅ɿcontext࣌୅ʁ

    View Slide

  7. Storyboardొ৔Ҏલͷը໘ભҠ
    let selectVC = SelectItemVC()
    selectVC.targetUser = self.user
    self.presentViewController(selectVC, animated: true,
    completion: nil)
    ભҠઌʹ஋Λ౉͢

    View Slide

  8. Storyboardొ৔Ҏલͷը໘ભҠ
    selectVC.delegate = self
    extension MyViewController: SelectItemVCDelegate {
    override func itemDidSelect(item: Item) {
    // get an item!
    }
    }
    ભҠઌ͔Β஋Λ΋Β͏

    View Slide

  9. 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
    }
    ભҠઌʹ஋Λ౉͢

    View Slide

  10. Storyboard࣌୅ͷը໘ભҠ
    @IBAction func unwind(segue: UIStoryboardSegue) {
    if let vc = segue.sourceViewController as?
    SelectitemVC {
    let item = vc.selectedItem
    }
    }
    ભҠઌ͔Β஋Λ΋Β͏

    View Slide

  11. WatchKitͰͷྫ
    self.presentControllerWithName("SelectItem", context: user)
    override func awakeWithContext(context: AnyObject?) {
    super.awakeWithContext(context)
    self.user = context as? User
    }
    ભҠઌʹ஋Λ౉͢

    View Slide

  12. WatchKitͰͷྫ
    self.presentControllerWithName("SelectItem", context: user)
    override func awakeWithContext(context: AnyObject?) {
    super.awakeWithContext(context)
    self.user = context as? User
    }
    ભҠઌʹ஋Λ౉͢

    View Slide

  13. WatchKitͷcontextͷྑ͍ͱ͜Ζ
    •ૄ݁߹ʂ
    •஋Λ౉͢ͱ͖ʹભҠݩͱભҠઌ͕ґଘؔ܎͕Ͱ
    ͖ͳ͍
    •ಉ͡ΠϯλʔϑΣʔεͰͳΜͰ΋౉ͤΔ
    •Optional BidingͳͲͰ؆୯/҆શʹड͚औΕΔ

    View Slide

  14. ͳ͓…
    ̍ϲ݄લͷ΅͘

    View Slide

  15. Swift࣌୅͸ΈΜͳ͜͏ॻ͖͍ͨΑͶ
    self.performSegueWithIdentifier("ItemSelect", context: user)
    { (item: Item) in
    let selectedItem = item
    }
    ભҠઌʹ஋Λ౉͢ˍ΋Β͏

    View Slide

  16. ͪΐ͏Ͳ1೥લ
    ୈ6ճ potatotips

    View Slide

  17. ͪΐ͏Ͳ1೥લ
    ୈ6ճ potatotips

    View Slide

  18. ͦͯ͠ࠓ೔ʂ
    https://github.com/tokorom/SegueContext

    View Slide

  19. ͜ͷॻ͖ํɺͰ͖·͢ʂ
    self.performSegueWithIdentifier("ItemSelect", context: user)
    { (item: Item) in
    let selectedItem = item
    }
    ભҠઌʹ஋Λ౉͢ˍ΋Β͏

    View Slide

  20. UIViewController+Contextͷྑ͍ͱ͜
    •ૄ݁߹ʂ
    •SwiftͰܕ҆શͳ஋ͷड͚౉͠
    •NavigationControllerͱ͔TabBarControllerΛڬΜ
    Ͱ΋΁ͬͪΌΒ
    •ΧελϜSegueͳͲෳࡶͳભҠͰ΋࢖͑Δ
    •Apple Way͔Β͸ͣΕ͗͢ͳ͍ʁ

    View Slide

  21. More Information
    Yuta ToKoRo
    iOS App Programer
    Twitter @tokorom
    http://www.tokoro.me/
    https://github.com/tokorom/SegueContext

    View Slide