質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

628閲覧

Swift(storyboard下)でViewControllerのボタン(@IBAction)を押すと、別のViewControllerにあるUILabelに表示をさせたいです

ryotask600

総合スコア2

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2020/04/30 15:53

前提・実現したいこと

初心者で、勉強日数が1週間程度の者です。
レベルとして、過去にスクリプトレベルでPythonを簡単に使っていた事のある、初心者に毛が生えたレベルです。

実現したい事と致しまして、Swiftでおみくじアプリを作っておりまして;
・現在3枚のViewControllerがあります。(下にXcodeで作成したUIが御座います)
・1枚目のViewControllerはただの画面推移で、ボタンを設置し、押したら次のViewControllerへ移動
・2名目のViewControllerに”占うボタン”があり、押したら用意したarrayからランダムで3枚目のLabelに対象の大吉や凶を表示させたい

質問内容

もし宜しければ、複数ありまして;
1.SwiftでViewControllerのボタン(@IBAction)を押すと、別のViewControllerにあるUILabelに表示をさせたいです。
⇒調べた結果、Segueを使った画面遷移が出来るとのことですが、IBAction内にfuncが入力出来ない為、どうすれば良いか分からず。

2.3枚目のViewControllerを縦スクロールが出来るようにしたい
⇒複数のLableを表示出来るようにしたいが、スペースが足りず、縦にスクロールする方法を考えました
⇒ScrollViewを使用したが、長さの可変が出来る欄(右上のニンジンのようなマーク?)を使ったが可変出来ず。。。

オープンQuestionである為、お手数お掛け致しますが、何卒宜しくお願いします。

出来ている部分

①Main.storyboardの簡単なUI部分
下記となります。
イメージ説明

②PlayGroundで作ったランダムに出力されるarray
下記となります。
////////////////////////////////
let omikuji_list = ["大吉", "中吉", "小吉", "吉", "凶", "大凶"]

let omikuji_list_random = omikuji_list.randomElement()

////////////////////////////////

補足情報(FW/ツールのバージョンなど)

Swift5
Xcode 11.4.1

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

1について
下記リンクを見てもらいたいのですが、@IBActionから、セグエを呼び出すprepareメソッドを呼び出しています。
リンク先のprepareメソッド内で、vc.prefNameに値を代入していますが、そこで配列のランダムな値を渡してあげればよいと思います。

Segueの使い方

2について
下記リンクはtextFieldがソフトキーボードで隠れないための記事ですが、スクロールさせる設定は同じなので参考になります。
コードでスクロールできる量を指定できる(コンテンツのサイズを指定するだけだけど)のでわかりやすいかと思います。

ScrollViewの使い方

投稿2020/04/30 17:41

freemann

総合スコア264

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ryotask600

2020/05/01 10:22

ご回答誠にありがとうございます! 申し訳ございません、追加のご質問させて頂いても宜しいでしょうか? ※もう6時間ぐらい彷徨っており、色々なSwiftのバージョンもある中で、 記載方法が異なる事等により、自身のシミュレーターが毎度クラッシュしてしまいます。。 宜しければ、下記ソースコードを記載致しました。。。 ご教授頂けましたら大変大変幸いです。。。。。 ※使用XcodeとしてVersion11、Swiftは5です //ViewController1のSwiftのファイルコード import UIKit class ViewController: UIViewController { @IBOutlet weak var titleLable: UILabel! override func viewDidLoad() { super.viewDidLoad() } override func prepare(for segue: UIStoryboardSegue, sender: Any?) { if (segue.identifier == "OmikujiPartViewController") { let omikuji_list = ["大吉", "中吉", "小吉", "吉", "凶", "大凶"].randomElement() let omikujiRandom: OmikukjiPartViewController = (segue.destination as? OmikukjiPartViewController)! omikujiRandom.unsei2020random = omikuji_list } } @IBAction func uranaiButton(_ sender: Any) { performSegue(withIdentifier: "OmikujiPartViewController", sender: nil) } } ////受け渡し先のViewController2のSwiftのファイルコード import UIKit class OmikukjiPartViewController: UIViewController { @IBOutlet weak var title2ndLabel: UILabel! @IBOutlet weak var unsei2020Label: UILabel! var unsei2020random :String? override func viewDidLoad() { super.viewDidLoad() unsei2020Label.text = unsei2020random } } 何卒宜しくお願いします。。。。
freemann

2020/05/01 11:20

Storyboard上で該当するSegueのidentifierに「OmikujiPartViewController」を記述していないためのエラーだと思います。
ryotask600

2020/05/01 11:33

動きました!! 本当に本当にありがとうございます!! 動いた瞬間に感動しました!! スクロールするUIの部分に着手致します為、ベストアンサーまで少々お待ち頂けましたら大変幸いです!
ryotask600

2020/05/03 18:02

何度かのクラッシュを経て、ようやく出来ました・・・ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問