UIImage以外で画像の格納は可能でしょうか?
例えばUIImageをpngファイルに保存して、
保存先をStringで持てばUIImage以外で画像を格納できた事になりますか?
WebViewも画像を表示(格納)できます。
引数の型をUIImageからvc(viewcontroller)に変更した場合、どのように画像を格納すれば良いか知りたい。
vcにUIimage型のメンバー変数を持てば、UIViewController型の引数からUIImageを参照できます。
Swift
1class ShareViewController: UIViewController {
2
3 ver myImage: UIimage!
4
5 func shareImageForm(vc: UIViewController) {
6 if vc is PostPictureViewController {
7 let post = vc as? PostPictureViewController
8 self.myImage = post.myImage
9 }
10 }
11
12}
Swift
1class PostPictureViewController: UIViewController {
2
3 ver myImage: UIimage!
4
5}
今回ShareViewControllerクラスのshareImageForm()メソッドの引数をimage: UIimageからvc: ~ViewcontrollerとViewControllerを与えた場合、PostPictureViewControllerクラスでoverrideしているshareImageForm()メソッドでUIImageが入れられなくなるので、どのように修正したら格納できるか、もしくはできないのかを知りたいです。
PostPictureViewControllerでshareImageForm()をoverrideする場合、
PostPictureViewControllerの親クラスはUIViewControllerではなくShareViewControllerになります。
ShareViewControllerのshareImageForm()は画像を格納する機能です。
PostPictureViewControllerのshareImageForm()はデリゲートメソッドを呼び出す機能です。
機能が違うので、無理にoverrideせず別のメソッドとして定義するべきです。
Swift
1class ShareViewController: UIViewController {
2
3 ver shareImage: UIimage!
4
5 func shareImageForm(vc: UIViewController) {
6 if vc is PostPictureViewController {
7 let post = vc as? PostPictureViewController
8 self.shareImage = post.postImage
9 }
10 }
11
12}
Swift
1class PostPictureViewController: ShareViewController {
2
3 ver postImage: UIimage!
4 weak var delegate: PostPictureViewControllerDelegate?
5
6 override func shareImageForm(vc: UIViewController) {
7
8 if vc is ShareViewController {
9 let share = vc as? ShareViewController
10 let attachment = Attachment.picture([share.shareImage])
11 delegate?.postPictureForm(attachment: attachment)
12 }
13 if vc is PostPictureViewController {
14 let post = vc as? PostPictureViewController
15 let attachment = Attachment.picture([post.postImage])
16 delegate?.postPictureForm(attachment: attachment)
17 }
18
19 }
20
21}
22
23protocol PostPictureViewControllerDelegate: AnyObject {
24 func postPictureForm(attachment: Attachment?)
25}
実現したい事と質問が合っていないと思うので、欲しい回答を得られていないと思います。
質問に沿って回答すると上記になります。
下記情報が有れば、欲しい回答を得られる事が多くなると思います。
・実現したい全体像
・手法について何故その手法(メソッドの引数を変える)を選択したのか、また試して駄目だった手法。
・クラス間の関係性(ShareがPostを呼び出すのか?PostがShareを呼び出すのか?ShareとPostを呼びだす別のクラスが存在するのか?