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

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

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

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

Q&A

2回答

199閲覧

Swiftで、グローバルで宣言された変数の変化を見てオブジェクトの表示非表示などをしたいのですが。。。

Hayato1201

総合スコア220

Swift

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

0グッド

0クリップ

投稿2018/12/11 12:51

編集2018/12/11 13:00

現在グローバルな変数checkedがあります。hogeVCではそのcheckedがfalseからTrueに変わった際にボタンのisHiddenをfalseにするなどして、表示非表示を切り替えたいです。そのcheckedはhugaクラスの処理によってTrueFalseが切り替わります。クラスhugaからhogeVCのインスタンを参照できればcheckedがtrueになる際にhogeVCのボタンのisHiddenを変える事ができるのとも思うのですが、hugaからhogeのインスタンを参照する方法がわかりません。こういった場合どうすれば良いでしょうか?また、あまり良い方法に思えませんが、例えばhogeVC内でタイマーを回しておき、その中で常にcheckedのTrueFalseを見ておけば変更された瞬間ボタンの表示を切り替える事ができます。実際この方法だとどういったデメリットがあるでしょうか?

ちなみにhogeVCは起動時に開かれるルートVCの時もあれば起動時に別のVCが開かれ、画面遷移でhogeVCに遷移するといった場合もあります。また、hogeVCとhugaは親子関係にあるわけでもないのでdelegateが使える訳でも無いと思います

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

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

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

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

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

fuzzball

2018/12/12 00:10

解決していないのに、なぜ前の質問をcloseしたのでしょうか?
Hayato1201

2018/12/12 00:44

いったん既存の質問をクローズした方がいいとのコメントがあったからです。
fuzzball

2018/12/12 01:16 編集

そのコメントには「当初の課題が解決したのであれば」と書かれていますが、当初の課題は解決したのでしょうか?
Hayato1201

2018/12/12 01:24

してませんが質問の書き方的に解決したとも取られてしまうものだったので再度質問を作りました。
fuzzball

2018/12/12 01:27

してないなら、元の質問を編集して、この質問は削除依頼を出してください。
guest

回答2

0

swift

1var checked = false { 2 didSet { 3 //ここにcheckedが更新されたときの処理を書く 4 } 5}

投稿2018/12/27 08:20

fuzzball

総合スコア16731

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

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

0

質問内容がしっかり理解できていませんが、グローバル変数の値を見てボタンの表示非表示をということで間違い無いですかね?

hugaからhogeのインスタンを参照する方法がわかりません

グローバルに宣言されているのであればそれぞれのviewDidLoadなどで値を確認してボタンの表示、非表示を行えば良いのでは無いでしょうか?

投稿2018/12/26 10:34

harumi

総合スコア407

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

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

Hayato1201

2018/12/27 01:53

回答ありがとうございます。 はい、グローバル変数の値を見てボタンの表示非表示という事です!しかしやりたい事としてはviewDidLoad時だけでなくその変数は何度も変更されるのでそのviewが出てから常に監視しておきたいです。
harumi

2018/12/27 02:43

checkedの値が切り替絵を行った後にbuttonのisHiddenを変えるんじゃだめなんですか? ボタンの生成自体は各viewDidLoadで行いisHiddenを変えていけば対応できそうな気がしました。 実現したいことがあまりよく理解できていないので的外れなことを言っていたらすみません
Hayato1201

2018/12/27 08:09

こちらこそ分かりにくい質問で申し訳ありません。 そうしたいのですが、checkedの値が切り替わったかどうかの検知が出来ないという事です!現状タイマーを回して1秒ごとにそのcheckedの値が何かを見る様にしているのですが、いつ何回切り替わるか分からないcheckedの為にタイマーを毎秒回すのは効率が悪い様な気がしたので質問しました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問