teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

5

質問内容を追記しました

2015/08/05 00:55

投稿

yoppy0066
yoppy0066

スコア293

title CHANGED
File without changes
body CHANGED
@@ -72,4 +72,44 @@
72
72
 
73
73
  また、listData1〜3なども画面上は隠れている間メモリにもっているかと思うのですが、どこか(ファイルなどのストレージ)に退避させるなどをするのが一般的なのでしょうか?
74
74
 
75
- はじめてのアプリということもあって、やっていてこんなやりかたでいいのか?ってかなり困惑しています。どなたかアドバイスいただけないでしょうか
75
+ はじめてのアプリということもあって、やっていてこんなやりかたでいいのか?ってかなり困惑しています。どなたかアドバイスいただけないでしょうか
76
+
77
+ 以下、追記します
78
+
79
+ 画面のイメージとしては以下のようなものとします
80
+ ・ユーザの一覧画面(各セルにフォローボタンがある)
81
+ ・ユーザの詳細画面(フォローボタンがある)
82
+
83
+ ユーザのアクションとして
84
+ ・一覧画面でフォローボタンをおせる
85
+ ・一覧画面でセルをタップすると詳細画面へ遷移する
86
+ ・詳細画面でフォローボタンをおせる
87
+ ・詳細画面から一覧画面へ戻ることができる
88
+ ※ここでは2階層としていますがが、実際には詳細画面からまた別の一覧画面へ遷移したりと階層がどんどん深くなっていきます
89
+
90
+ 検討すべき処理のイメージとして
91
+ ListViewController.swift
92
+ `
93
+ ListViewController : UIViewController {
94
+ var listData
95
+ viewDidLoad() {
96
+ // apiなどからデータを取得してlistDataに保持
97
+ }
98
+ viewWillAppear() {
99
+ // listDataと①で保存したデータを付き合わせてViewをつくる
100
+ }
101
+ }
102
+ `
103
+
104
+ DetailViewController.swift
105
+ `
106
+ DetailViewController : UIViewController {
107
+ var data
108
+ viewDidLoad() {
109
+ // apiなどからデータを取得してdataに保持
110
+ }
111
+ func フォローボタンがおされたら() {
112
+ // フォローしたユーザIDをファイルやDBなどに保持・・・①
113
+ }
114
+ }
115
+ `

4

誤記があったため

2015/08/05 00:55

投稿

yoppy0066
yoppy0066

スコア293

title CHANGED
File without changes
body CHANGED
@@ -36,9 +36,9 @@
36
36
  `
37
37
  ViewController1: BaseViewController {
38
38
 
39
- var listData1: Dictionary<String,AnyObject>? // data1のリスト
39
+ var listData1: [Dictionary<String,AnyObject>]? // data1のリスト
40
- var listData2: Dictionary<String,AnyObject>? // data2のリスト
40
+ var listData2: [Dictionary<String,AnyObject>]? // data2のリスト
41
- var listData3: Dictionary<String,AnyObject>? // data3のリスト
41
+ var listData3: [Dictionary<String,AnyObject>]? // data3のリスト
42
42
 
43
43
  override setUp() {
44
44
  NSNotificationCenter.defaultCenter().addObserver(self, selector: "updateData1:", name: "data1", object: nil)
@@ -54,8 +54,8 @@
54
54
  // data1が更新されたさいに通知される
55
55
  func updateData1(notification: NSNotification) {
56
56
  for var i = 0; i < self.listData1.count; i++ {
57
- if notification.userInfo["id"] as! String == self.listData1[i]["id"] as! String {
57
+ if notification.userInfo["data1"]["id"] as! String == self.listData1[i]["id"] as! String {
58
- self.listData1[i] = notification.userInfo["id"]
58
+ self.listData1[i] = notification.userInfo["data1"]["id"]
59
59
  break;
60
60
  }
61
61
  }

3

不足があったため

2015/08/04 16:47

投稿

yoppy0066
yoppy0066

スコア293

title CHANGED
File without changes
body CHANGED
@@ -32,6 +32,7 @@
32
32
  }
33
33
  `
34
34
 
35
+ ViewController1.swift
35
36
  `
36
37
  ViewController1: BaseViewController {
37
38
 
@@ -69,4 +70,6 @@
69
70
 
70
71
  画面数的には100画面を超えていて、data1〜3のようなデータも20パターンくらいあります。
71
72
 
73
+ また、listData1〜3なども画面上は隠れている間メモリにもっているかと思うのですが、どこか(ファイルなどのストレージ)に退避させるなどをするのが一般的なのでしょうか?
74
+
72
75
  はじめてのアプリということもあって、やっていてこんなやりかたでいいのか?ってかなり困惑しています。どなたかアドバイスいただけないでしょうか

2

不足があったため

2015/08/04 16:39

投稿

yoppy0066
yoppy0066

スコア293

title CHANGED
File without changes
body CHANGED
@@ -58,6 +58,7 @@
58
58
  break;
59
59
  }
60
60
  }
61
+ // VIewの再描画など
61
62
  }
62
63
 
63
64
  // data2、data3についてもdata1と同様の関数を用意

1

誤記があったため

2015/08/04 16:36

投稿

yoppy0066
yoppy0066

スコア293

title CHANGED
File without changes
body CHANGED
@@ -32,6 +32,7 @@
32
32
  }
33
33
  `
34
34
 
35
+ `
35
36
  ViewController1: BaseViewController {
36
37
 
37
38
  var listData1: Dictionary<String,AnyObject>? // data1のリスト
@@ -61,10 +62,10 @@
61
62
 
62
63
  // data2、data3についてもdata1と同様の関数を用意
63
64
  }
65
+ `
64
66
 
65
67
  こんなかんじでviewController毎に必要な箇所で必要なプロパティのNSNotificationCenterを実装している形になっています。
66
68
 
67
69
  画面数的には100画面を超えていて、data1〜3のようなデータも20パターンくらいあります。
68
70
 
69
- やっていてこんなやりかたでいいのか?ってかなり困惑しています。
71
+ はじめてのアプリということもあって、やっていてこんなやりかたでいいのか?ってかなり困惑しています。どなたかアドバイスいただけないでしょうか
70
- どなたかアドバイスいただけないでしょうか