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

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

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

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

Swift

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

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

Q&A

解決済

3回答

2278閲覧

iPhoneアプリ開発での表示データの整合性のとりかたについて

yoppy0066

総合スコア293

Objective-C

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

Swift

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

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

0グッド

1クリップ

投稿2015/07/26 07:34

画面1、画面2、画面3
と階層構造の画面をもつアプリがあるとします。
画面3でAPIなどを経由してデータの更新などを行うとします。
ナビゲーションで画面1、画面2にもどったとき画面3で更新した内容を反映しなくてはならないのですがどのような実装方法が一般的なのでしょうか?

シンプルに都度データ取得用のAPIをたたくという実装を考えていたのですが、、、無駄も多い気がします、、、

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

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

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

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

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

guest

回答3

0

ベストアンサー

Stripeさんの言うようにMVCでいうModelのお話ですね
まずその画面3で更新した内容をModelとして保存します。
その保存したModel情報を画面1・画面2で読み込むように
してあげるのが一般的に取られる手法となります

永続的に使いたい場合

iOSではデータの永続化の手法として以下のような種類があります

  • CoreData
  • NSUserDefaults
  • アーカイブ (kumaaさんのやり方もこの中に入ります)

どれを使うかはググると色々出てくると思うので選定してみてください
手法の難易度的に言えば

NSUserDefaults < アーカイブ < CoreData

ですね

一時的で良い場合

この場合のやり方なんですがシングルトンパターンを使う場合が多いですね
「iOS シングルトン」などで検索して頂くと実装内容も含めて出てくるかなーと
思います

投稿2015/07/28 16:07

編集2015/07/28 16:17
__moai

総合スコア264

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

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

yoppy0066

2015/07/29 11:37

なるほど、ありがとうございました
guest

0

MVCパターンの基づいて、Modelを実装してください。
「APIなどを経由してデータの更新などを行う」というのは、画面3ではなく、Modelで行われるべきものです。

投稿2015/07/26 11:45

Stripe

総合スコア2183

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

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

0

色々な実装があると思いますが、私はアプリの現状を表すパラメーターを全部1つのファイル書き出して、各画面の読み込み時にファイルを読み込んでパラメータを設定するようにしています。アプリの中で状態としてメモリ上に持っていると、アプリを上にスワイプして終了されてしまうと状態が消えてしまいます。ファイルに書いておくと、消えないので良いです。ほかにもやり方があるようですが、私はスプライトキットで画面を作ってるのでビューから他のUIコントローラを覗くのが大変ということもあって旧式のファイル経由でおこなっています。

投稿2015/07/26 13:24

kumaa

総合スコア10

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問