前提・実現したいこと
プログラミングを独学で学び始めた超初心者です。
とある初心者用の本のサンプルコードを利用(そのままコピペ)し、Swiftで簡単なSNSアプリを自分の環境下で再現中です。
このSNSアプリは、実機で操作すると、アプリを開く
>表示された画像の右下にある(はずの)IBActionボタンを押す
>アクティビティビューが表示される
>Twitterを選び、表示した画像をツイートできるようにする
というものです。
発生している問題・エラーメッセージ
問題となっているのは、そのサンプルコードがiPhone Xsを対象としたもので、
自分の持っているiPhoneがiPhone8であるため、
iPhone8でシュミレートしたり、実機(iPhone8)でテストすると、IBActionボタンが表示されなくなってしまうことです。
このサンプルコードを用いると、iPhone XsでもiPhone8でもビルドは問題なく「成功」と出ます。
エラーは特に出ず、ビルド成功と出ます。
該当のソースコード
Swift (Versionは4.1か4.2?)
import UIKit class ViewController: UIViewController { @IBOutlet weak var imageView: UIImageView! @IBAction func showActivityView(_ sender: UIBarButtonItem) { let controller = UIActivityViewController(activityItems: [imageView.image!], applicationActivities: nil) self.present(controller, animated: true, completion: nil) } override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. } }
試したこと
・AutoLayoutにはしてある。
・シュミレート時に左上のActive Scheme の設定をiPhone Xsにするとビルド後のシュミレート画面でIBActionボタンが出るが、iPhone8に設定すると、ビルドに成功しても表示されない。
・エディタエリアにて View As:iPhone8 としてからiPhone8でビルドしても、シュミレーターで IBActionボタンは見えない。
・実機(iPhone8)でも、IBActionボタンが表示されない。
*写真はシュミレーター上も、実機上もきちんと画面に表示される。
補足情報(FW/ツールのバージョンなど)
この本に記載されたコードのSwiftのバージョンは不明ですが、本の発売日(2018年12月)からしてSwift4.1もしくは4.2と思っています。
その他、本の想定していた環境設定(本中に記載あり):Xcode10, iOS12。
その他の現在の私の環境は以下の通りです。
Xcode version 10.2.1 (10E1001)
iPhone8 , iOS 12.3.1
iPhone8用のコードは上記とどこか違うのでしょうか?
Swiftのバージョン●の場合は/iPhone8でIBActionを示したい場合は IBActionをこのように書く、といったことがわかるサイトはありますか?(私が調べた限り見当たりませんでした。XcodeとSwiftの互換性の表は見つかりましたが、、、。)
もしくはXcodeの互換性などの問題なのでしょうか?
これ以上何を調べたら良いか、どのような点に注目して検索したりすべきなのか、または検索すべきキーワードがなんなのか、わかりません。
初歩的で申し訳ないですが、どうぞよろしくお願いします。
回答1件
あなたの回答
tips
プレビュー