activity
スポンサーリンク

シュミレーターではどうしてもiPhoneで動かすことが多いので、iPadでの不具合には気付きにくいですよね。

iPhoneでは普通にUIActivityViewが表示されていたのですが、iPadで試したところ、UIActivityViewが表示されるべきところでアプリが落ちてしまいました。

正しくiPadで正しくUIActivityViewが表示できるようにしたいです。

私がやったこと

Swift-code

 

どうやら
popoverPresentationController?.sourceView
popoverPresentationController?.sourceRect
この2つを指定する必要があるようです。

 

 

popoverPresentationControllerの詳細

Summary

The nearest popover presentation controller that is managing the current view controller.

現在のView Controllerを管理している最も近いポップオーバープレゼンテーションコントローラー。

Declaration

var popoverPresentationController: UIPopoverPresentationController? { get }

Discussion

If the view controller or one of its ancestors is managed by a popover presentation controller, this property contains that object. This property is nil if the view controller is not managed by a popover presentation controller. If you created the view controller but have not yet presented it, accessing this property creates a popover presentation controller when the value in the modalPresentationStyle property is UIModalPresentationStyle.popover. If the modal presentation style is a different value, this property is nil.

View Controllerまたはその祖先の1つがポップオーバープレゼンテーションコントローラによって管理されている場合、このプロパティにはそのオブジェクトが含まれます。 View Controllerがポップオーバープレゼンテーションコントローラーによって管理されていない場合、このプロパティはnilです。 View Controllerを作成したがまだ表示していない場合、このプロパティにアクセスすると、modalPresentationStyleプロパティの値がUIModalPresentationStyle.popoverのときにpopoverプレゼンテーションコントローラが作成されます。モーダルプレゼンテーションスタイルが異なる値の場合、このプロパティはnilです。

 

sourceViewの詳細

Summary

The view containing the anchor rectangle for the popover.
ポップオーバーのアンカー長方形を含むビュー。

Declaration

var sourceView: UIView? { get set }

Discussion

Use this property in conjunction with the sourceRect property to specify the anchor location for the popover. Alternatively, you may specify the anchor location for the popover using the barButtonItem property.

このプロパティをsourceRectプロパティと組み合わせて使用​​して、ポップオーバーのアンカー位置を指定します。または、barButtonItemプロパティを使用して、ポップオーバーのアンカー位置を指定できます。

 

sourceRectの詳細

Summary

The rectangle in the specified view in which to anchor the popover.
ポップオーバーを固定する、指定されたビュー内の長方形。

Declaration

var sourceRect: CGRect { get set }

Discussion

Use this property in conjunction with the sourceView property to specify the anchor location for the popover. Alternatively, you may specify the anchor location for the popover using the barButtonItem property.

このプロパティをsourceViewプロパティと組み合わせて使用​​して、ポップオーバーのアンカー位置を指定します。または、barButtonItemプロパティを使用して、ポップオーバーのアンカー位置を指定できます。

 

sourceViewとsourceRectは組み合わせて使うことで、ポップオーバーのアンカー位置を指定でき、それを起点にUIActivityViewが表示されるようです。

シュミレータで見てみるとこのようになります。

ipad

CGRectで中心から出てくるようになっているため、このようになります。

Swift(iOS)が学べるオンラインスクール ランキング
CodeCamp
CodeCamp
7〜24時まで授業可能で働きながらでも学べる!!
料金
講師の質
コースの種類
転職サポート
ポイント1エンジニア経験2年以上のベテラン講師によるオンライン授業
講師は全員が現役のエンジニアで、他のスクールによく見られるアルバイト講師ではありません。マンツーマン指導で自分のレベルにあったカリキュラムが組め、満足度も高いです。また、自社開発企業への転職指導にも定評があります。

ポイント2無料レッスン体験&無料受講相談で事前に話が聞ける
事前にレッスンを体験して授業の雰囲気や学習ペースを確認できます。またエンジニア転職を目指す方にはどのコースが向いているかなどが聞けるカウンセリング(受講相談)も無料。エンジニアの生の声が聞けるので自分が働き出した時のことをイメージできます。

TechAcademy

授業型ではなく自習型なので自分のペースで学べる
料金
講師の質
コースの種類
転職サポート
ポイント1自習スタイルでチャット質問は何回でも無料
自分の分からないところを質問するスタイルなのでわかるところはサクッと、わからないところはじっくりと、無駄なく学べます。チャットの質問が無料なので、料金を気にせず何回でも聞けます。また、メンターがつくのでカウンセリングで学習の進捗やモチベーションの管理もしてくれます。
ポイント21週間の無料体験と無料カウンセリング、安心の返金制度も
無料体験の期間は1週間もあり、納得してから契約できるので安心です。事前の無料カウンセリングでは、その人にあったアドバイス等をもらうことができるので気軽に活用しよう。転職保障コースの場合、転職できなかったら全額返金!!
侍エンジニア塾
プログラミングスクールの老舗NO.1
料金
講師の質
コースの種類
転職サポート
ポイント1歴史があるからノウハウも豊富
日本で初めてオンラインのマンツーマンレッスン指導を導入した実績十分のスクール。講師も現役エンジニアでメンタリングもあるため転職のサポートも手厚く、面接対策や自己PRのフィードバックまで対応してくれます。

ポイント2転職成功率94.1%、挫折率8%
コースによっては転職成功で受講料が0円に!!  絶対にエンジニアになりたいという意思があれば超低額で転職できます。事前の無料体験で相談も可能なため、まずは話だけ聞いてみるのもあり。

おすすめの記事