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

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

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

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

Q&A

解決済

2回答

959閲覧

swiftにて画面遷移をカウントしたい

hanikichi

総合スコア11

Swift

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

0グッド

0クリップ

投稿2019/08/15 13:48

SwiftにてFirstScence画面を表示する回数をカウントする機能を付けたいのですが、簡単すぎるのか検索しても引っ掛からないためやり方をお教え願いたく質問させて頂きました。

Tabbed Appで2画面を作成し、Secondタブを選択しFirstタブに戻る毎にカウントしたいです。FirstViewControllerをカスタマイズする所まではヒントが出ているのですが後がサッパリわかりません。

そもそもこの動きはviewDidLoadなのかviewDidAppearなのか??全然わからないなりにここまで書いてみたのですが。。。恥

swift

1import UIKit 2 3class FirstViewController: UIViewController { 4 5 @IBOutlet weak var display: UILabel! 6 var count : Int = 0 7 8 override func viewDidLoad() { 9 super.viewDidLoad() 10 display.text = String(count) 11 } 12

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

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

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

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

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

guest

回答2

0

FirstViewController が開かれた時に、ライフサイクル系のどの関数 ( viewDidLoadviewDidAppear ) が呼び出されているかを確認して、開く度に毎回呼び出されているメソッド内で、カウントをプラスすれば良いのではないかと思います。

また、どのように検索したのか分かりませんが、抱えている問題を極限まで細分化 (因数分解) すれば、自ずと検索の仕方も変わってくるでしょうし、その時には既に問題は解決されていると思います (検索するワードが確定するという意味において) 。

この場合だと、

First タブに戻る

FirstViewController が開く

FirstViewController が開くことを検知したい

FirstViewController が開く度に呼ばれるメソッドは何か?

ViewController のライフサイクルってどうなってるの?

ViewController + ライフサイクル でググる

どうやらいくつかメソッドがあって、 viewDidAppear とか viewWillAppear とか、、、

とりあえず、そのメソッド内で print 文書いて確認してみよう

どうやら xxxメソッド が呼ばれているな

このメソッド内でカウントしよう!

という風に私なら考えます。

投稿2019/08/15 14:17

s.m_1

総合スコア293

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

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

hanikichi

2019/08/16 04:04

考え方を教えて下さり有難うございました。細分化された課題点を見て、そもそもswiftの仕組みがよくわかってなかったのだと気づきました。FirstViewController内では毎回viewDidLoadが表示されているのでそこにカウントを書き込んでみたのですが、加算されていかないもので再度調べてはいるのですが難しいです。
s.m_1

2019/08/16 04:17

実際に、TabbedApp で確認してみましたが、FirstViewController が表示する度に呼ばれているメソッドは、viewDidLoad ではありません。他のライフサイクルのメソッドです。なので、そこでカウントしましょう。
hanikichi

2019/08/16 05:15

わざわざ見ていただいたみたいでお手間おかけしすみません。ライフサイクルのメソッドを確認する所はFirstViewController.swifの中ではないのでしょうか?それともAppDelegate.swiftでの話でしょうか?初歩的で本当にすみません。。。
guest

0

自己解決

viewWillAppear内に書いてみたらそれらしい動きになりました!

swift

1import UIKit 2 3class FirstViewController: UIViewController { 4 5 @IBOutlet weak var display: UILabel! 6 var count : Int = 0 7 8 override func viewWillAppear(_ animated: Bool) { 9 10 count += 1 11 display.text = count.description 12 print(count) 13 } 14 15 16}

投稿2019/08/16 06:28

hanikichi

総合スコア11

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問