42
42

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

iOS 9.2でSFSafariViewControllerの挙動が変わってる!

Last updated at Posted at 2015-12-09

今朝iOS 9.2にアップデート直後に見た目の変化で驚き、さらにXcode 7.2で開発中に挙動の変化に気付き、さらにびっくりしました( ´・‿・`)

どう変化したか

とりあえず概要です。

  • 閉じるためのDoneボタンが右上から左上に変更
    • これは普通にアプリ弄っていて気付きました
  • presentViewControllerしただけでPush遷移するようになった
    • こちらはXcode 7.2で開発中に気付きました

閉じるためのDoneボタンが右上から左上に変更

これはそんなに特筆することでは無いですが、個人的には嬉しかったです( ´・‿・`)

Screen Shot 2015-12-09 at 8.44.28 PM.png

presentViewControllerしただけでPush遷移するようになった

こちらはびっくりしました( ´・‿・`)
左エッジスワイプで戻ることも可能です。
この挙動の方が良いという声が多く、Push / Pop modal SFSafariViewController (Hacking swipe from edge gesture)などがんばって対応している例などもありました。

それが、iOS 9.2・Xcode 7.2ビルドの組み合わせでこのように普通に呼び出すだけでPush遷移になりました。

let vc = SFSafariViewController(URL: NSURL(string: "http://qiita.com/mono0926")!)
presentViewController(vc, animated: true, completion: nil)

初めは、呼び出し元がUINavigationControllerだったらPushで、普通のUIViewControllerだったらモーダルかな?と思いましたが、いずれでもPushでした。

また、いくつか検証してみましたが、SDKバージョンは9.1を指定しても挙動変わらず、「iOS 9.2・Xcode 7.2ビルドの組み合わせ」が条件ぽくて、今いちしっくり来なかったです。

端末 SDK Xcode 結果
9.1 9.1 7.1 モーダル
9.1 9.2 7.2 未検証
9.2 9.1 7.1 モーダル
9.2 9.1 7.1 モーダル
9.2 9.1 7.2 Push
9.2 9.2 7.2 Push

開発者としてあまり困ることは無さそうな気がしますが、Push / Pop modal SFSafariViewController (Hacking swipe from edge gesture)のように細工しているとうまく動かなくなるなどありえるかもしれません。
iOS 9.1以前からPushの挙動になるよう対応されていたTweetbotは、iOS 9.2でも問題無かったですが。

ドキュメントには、まだ更新無さそうでした:
https://developer.apple.com/library/prerelease/ios/documentation/SafariServices/Reference/SFSafariViewController_Ref/RevisionHistory.html#//apple_ref/doc/uid/TP40016220-CH2-SW1

【追記】サードパーティーのAction extensionsもサポートされました

こちらの記事で知りました:
iOS 9.2ではSFSafariViewControllerでサードパーティエクステンションがサポートされ、Tweetbotに1Passwordを利用してアカウントを追加することも可能に。

確かに書いてありますね!

iOS 9.2 Release Notes

SFSafariViewController now supports 3rd party Action extensions. Any Action extension that works in Safari will also work in SFSafariViewController.

42
42
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
42
42

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?