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

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

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

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

Xcode

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

Swift

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

Q&A

解決済

1回答

2130閲覧

TabBarControllerを使った画面で下のタブアイテムを押すと画面を最初の状態に更新したい

doreiku_uroko

総合スコア37

Objective-C

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

Xcode

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

Swift

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

0グッド

0クリップ

投稿2018/11/10 12:01

Xcode9.4.1にて

ファイル>新規>プロジェクトにてiosのTabbedAppを選択し
UITabBarControllerを使って2つ画面を表示するアプリを作ります。

その中の1つの画面(ここでは画面Aとします)にスクロールビューとテキストビューを用意して、
スクロール、そしてテキスト入力ができるようにします。

ProductをRunしてアプリを起動し、
画面Aにてテキストビューに文字を入力し、画面をスクロールして、下のタブを押して
他の画面(ここでは画面Bとします)に遷移し、
再び画面Aのタブを押して画面Aに遷移すると
スクロール位置やテキストビューに入力された値が記録されたまま(前の状態のまま)になっているのですが
タブを押すたびに
スクロール位置やテキストを初期状態(1番最初の状態)で表示しなおしたいです。

何かいい方法はないでしょうか。

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

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

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

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

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

fuzzball

2018/11/13 00:36

タブが押されたときに初期状態に戻せばいいだけですが、何が分からないのでしょうか?
guest

回答1

0

ベストアンサー

案1.
UITabBarControllerの切替時
UIViewControllerのライフサイクルのviewWillAppear以降が呼ばれます
そこで初期化をすると良いです
ただしviewWillAppearはその他の場合にも呼ばれるので、その時初期化していいか考えなければなりません
(例えば画面繊維で戻ってきた時、アプリがバックグラウンドから復帰した時)

案2.
UITabBarControllerDelegateを使うと、切り替わりを取得できます
func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController)

案3.
UITabBarControllerを継承したクラスを作り
func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController)をoverrideします
didSelect viewControllerが該当の画面なら
hogeViewController.refresh()とします

投稿2018/11/13 06:31

kosanai

総合スコア471

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

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

doreiku_uroko

2018/11/13 10:12

ありがとうございます! 案3でうまくいきました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問