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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

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回答

1674閲覧

画面遷移時に値を初期化したい+imageをボタンを押すたび切り替えたい

Ytan

総合スコア39

Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

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/03/05 07:19

Swift

1 2import UIKit 3 4class ViewController: UIViewController { 5 6 @IBOutlet weak var Label: UILabel! 7 8 9 var firstTap = false 10 var isLeftTap = false 11 var tokuten = 0 12 13 override func viewDidLoad() { 14 super.viewDidLoad() 15 16 Label.text = String(tokuten) 17 } 18 19 20 @IBAction func leftButton(_ sender: Any) { 21 if firstTap == false{ 22 23 24 firstTap = true 25 26 isLeftTap = true 27 28 }else{ 29 30 31 if isLeftTap == true{ 32 33 tokuten += 2 34 } else{ 35 tokuten += 1 36 } 37 } 38 Label.text = String(tokuten) 39 40 if tokuten > 8{ 41 42 tokuten = 0 43 44 performSegue(withIdentifier: "next", sender: nil) 45 } 46 } 47 48 @IBAction func rightButton(_ sender: Any) { 49 if firstTap == false{ 50 51 52 firstTap = true 53 54 isLeftTap = false 55 56 }else { 57 58 if isLeftTap == true { 59 60 tokuten += 1 61 }else{ 62 tokuten += 2 63 } 64 } 65 Label.text = String(tokuten) 66 if tokuten > 8{ 67 68 tokuten = 0 69 70 performSegue(withIdentifier: "next", sender: nil) 71 } 72 73 } 74 75}

・こちらにて、始めに押したボタンがどちらかよって次に増える値の増え方が条件によって変化します。こちらをLabelの値ではなく
imageView.image = UIImage(named:"")を使いimageを変えたい場合(Labelの文字も一つずつ変えたい)どのようにコードを足すのか変えるのか教えて欲しいです。

・また画像を、例えばassetsに7枚追加したとして,ボタンを押し続けimageの値が8になった場合にBクラスに画面遷移してbottunを押してdismissを使って戻したいのですが、Aクラスに戻ったときに値を0からに戻してまた繰り返し何回もできるようにしたいのですが、その場合どのメソッドを追加したらよろしいでしょうか?

xcode 11.3.1
swift 5

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

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

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

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

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

guest

回答1

0

・こちらにて、始めに押したボタンがどちらかよって次に増える値の増え方が条件によって変化します。こちらをLabelの値ではなく

imageView.image = UIImage(named:"")を使いimageを変えたい場合(Labelの文字も一つずつ変えたい)どのようにコードを足すのか変えるのか教えて欲しいです。

質問する際に、もう少し具体的にソースに書いている点も含めて説明されると、ソースコードを一生懸命に読む負担が減るので、回答が得られやすくなると思います。

この場合、tokutenというメンバが増減するけれど、それに対応してimageを変更したいという意図でしょうか?
どのように管理するかによりますが、例えばtokutenが1の時には"tokuten1.png"とし、2の場合には"tokuten2.png"を表示したいのであれば、以下のようにすれば良いでしょう。

swift

1# 単純なif2if tokuten == 1 { 3 img = "tokuten1.png" 4} else if tokuten == 2 { 5 img = "tokuten2.png" 6} 7 8# switch9switch tokuten { 10 case 1: 11 img = "tokuten1.png" 12 case 2: 13 img = "tokuten2.png" 14 default: 15 # エラーです 16} 17 18# その他、文字列操作で 19img = String(format: "tokuten%d.png", tokuten) 20img = "tokuten(tokuten).png"

その場合どのメソッドを追加

https://developer.apple.com/documentation/uikit/uiviewcontroller/1621510-viewwillappear
AクラスのviewWillAppearで常に初期化するようにすることで、Aクラスが表示されるたびに初期化されるようになります。

投稿2020/03/05 09:17

t_obara

総合スコア5488

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

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

Ytan

2020/03/06 02:47

このサイトの使い方がまだ曖昧なのでコードを囲う事がうまくできませんでした。 また //どちらのボタンを押すかで回数を確定させる //条件分岐 は無いものとお考えください。
t_obara

2020/03/06 09:47

`無いものと`の意味が全くわかりません。何に対して考えれば良いのでしょう? 回答案で貴殿の質問と違う意図なのであれば、具体的に何が違うのかを示してください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問