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

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

新規登録して質問してみよう
ただいま回答率
85.48%
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回答

2087閲覧

Swift 値渡しがうまくいかない

Amuy

総合スコア50

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/01/14 09:54

編集2020/01/14 10:53

#前提
ゲームを作成しています。
ゲームの時間を選べるようにしていて、選んだ時間の変数をゲーム画面に値渡ししたいです。

Swift

1class ViewControllerSetting: UIViewController { 2 var TimerSet2:CGFloat = 0 3 4 override func viewDidLoad() { 5 super.viewDidLoad() 6 7 // Do any additional setup after loading the view. 8 } 9 10@IBAction func Button1000(_ sender: Any) { 11 performSegue(withIdentifier:VCGame, sender: nil) 12 TimerSet2 = 1000 13 print(1000") 14 } 15 16 override func prepare(for segue:UIStoryboardSegue, sender: Any? ) { 17 if segue.identifier ==VCGame{ 18 let vcGame = segue.destination as!ViewControllergame 19 vcGame.TimerSet = TimerSet2 20 }

ゲーム画面、プリント&時計の針を動かすプログラム

Swift

1import UIKit 2//extension UIImage { 3 4class ViewControllergame: UIViewController { 5 @IBOutlet weak var TimerSecond: UIImageView! 6 7 var TimerTimer:Timer! 8 var TimerAngle:CGFloat = 0 9 var TimerSet:CGFloat = 0 10 //ここで、タイマーの時間を設定 11 12 override func viewDidLoad() { 13 super.viewDidLoad() 14 15 print(TimerSet) 16 //タイマーのプログラム 17 TimerTimer = Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true, block:{ (t) in 18 self.TimerAngle = self.TimerAngle + 1 19 let angle = self.TimerAngle * CGFloat.pi / self.TimerSet * 2 20 self.TimerSecond.transform = CGAffineTransform(rotationAngle: CGFloat(angle)); 21 if self.TimerAngle == self.TimerSet { 22 self.performSegue(withIdentifier:"RankingView", sender: nil) 23 } 24 })

にしてみたり、

Swift

1@IBAction func Button1000(_ sender: Any) { 2 performSegue(withIdentifier:"VCGame", sender: nil) 3 TimerSet2 = 1000 4 print("1000") 5 func prepare(for segue:UIStoryboardSegue, sender: Any? ) { 6 let vcGame = segue.destination as!ViewControllergame 7 vcGame.TimerSet = TimerSet2 8 }

にしてみましたが、どちらもうまくいきませんでした

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

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

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

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

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

MasatoUchida

2020/01/14 09:58

TimerSetはどこに定義されているのでしょうか。また関数名なども抽象的なのでできればリネームして頂けると回答しやすいです。もしくはコードを変に省略せずにある程度全て載せていただいたほうがいいかもしれません。
Amuy

2020/01/14 10:48

わかりました。編集します
Amuy

2020/01/14 11:03

解決しました!
guest

回答1

0

自己解決

Swift

1performSegue(withIdentifier:"VCGame", sender: nil) 2TimerSet2 = 10

だったのがいけなかったようです。
変数にセットするのを先にするとうまく動作しました

Swift

1TimerSet2 = 10 2performSegue(withIdentifier:"VCGame", sender: nil)

投稿2020/01/14 11:05

Amuy

総合スコア50

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問