質問編集履歴

6

コード

2019/08/20 04:11

投稿

torkia
torkia

スコア24

test CHANGED
File without changes
test CHANGED
@@ -36,9 +36,15 @@
36
36
 
37
37
  print文で、フォアグラウンドメソッドが呼ばれたら出力されるようにテスト出力してみると、バックグラウンド(ロック状態)の間に再生されたページ分が、フォアグラウンドに戻った時にそのページ分が一気に出力される(呼び出されている)状態です。
38
38
 
39
+
40
+
39
41
  また、現在表示されているViewControllerを取得してテスト出力してみても同様に数ページ分呼び出されており、黒画面になってしまいます。
40
42
 
43
+
44
+
41
45
  NotificationCenterでフォアグラウンドメソッドを呼び出すのを、PageViewController.swiftの方に記述すると、該当のページだけ呼び出されているのですが、黒画面になってしまいます。
46
+
47
+
42
48
 
43
49
 
44
50
 
@@ -96,7 +102,7 @@
96
102
 
97
103
  // アプリがフォアグラウンドになったことを通知してメソッドを呼び出す
98
104
 
99
- NotificationCenter.default.addObserver(self, selector: #selector(foregroundMethod), name: NSNotification.Name.UIApplicationDidBecomeActive, object: nil)
105
+ NotificationCenter.default.addObserver(self, selector: #selector(foregroundMethod), name: NSNotification.Name.UIApplicationWillEnterForeground, object: nil)
100
106
 
101
107
 
102
108
 

5

コード

2019/08/20 04:10

投稿

torkia
torkia

スコア24

test CHANGED
File without changes
test CHANGED
@@ -38,7 +38,7 @@
38
38
 
39
39
  また、現在表示されているViewControllerを取得してテスト出力してみても同様に数ページ分呼び出されており、黒画面になってしまいます。
40
40
 
41
- NotificationCenterでフォアグラウンドメソッドを呼び出すのを、PageViewController.swiftの方に記述すると、該当のページ(最後のページ)だけ呼び出されているのですが、黒画面になってしまいます。
41
+ NotificationCenterでフォアグラウンドメソッドを呼び出すのを、PageViewController.swiftの方に記述すると、該当のページだけ呼び出されているのですが、黒画面になってしまいます。
42
42
 
43
43
 
44
44
 

4

コード

2019/08/20 03:47

投稿

torkia
torkia

スコア24

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,4 @@
1
- バックグラウンド(ロック状態)で音再生して終了してからフォアグラウンドに戻った時、Viewが黒画面になってしまいます。
1
+ バックグラウンド(ロック状態)で音再生してフォアグラウンドに戻った時、Viewが黒画面になってしまいます。
2
2
 
3
3
 
4
4
 
@@ -7,6 +7,8 @@
7
7
  テーブルビューのセルから各ページに遷移でき、遷移先同士をページ移動できるようにページビューコントローラーで制御しています。
8
8
 
9
9
  ページ毎に音再生を連続させて、そのページ分が終了したら次のページに自動で遷移して音再生します。
10
+
11
+ 音楽再生アプリや、歌詞が表示されるアプリの仕様に似たようなものです。
10
12
 
11
13
 
12
14
 
@@ -22,7 +24,7 @@
22
24
 
23
25
  再生と表示ができています。それ以上のページ数を進んでフォアグラウンドに戻ると、黒画面になってしまいます。
24
26
 
25
- (表示は自動スクロールさせて現在再生中のリストのアイコンを点灯させています)
27
+ (表示は自動スクロールさせて現在再生中のアイコンを点灯させています)
26
28
 
27
29
 
28
30
 
@@ -30,19 +32,23 @@
30
32
 
31
33
  <試したことなど>
32
34
 
33
- コンテンツ用のViewControllerでNotificationCenterを使っていて、フォアグラウンドメソッドで該当のページを呼び出すようにするとクラッシュしてしまいます。
35
+ コンテンツ用のViewControllerでNotificationCenterを使って、フォアグラウンドメソッドで該当のページを呼び出すようにするとクラッシュしてしまいます。
34
36
 
35
37
  print文で、フォアグラウンドメソッドが呼ばれたら出力されるようにテスト出力してみると、バックグラウンド(ロック状態)の間に再生されたページ分が、フォアグラウンドに戻った時にそのページ分が一気に出力される(呼び出されている)状態です。
38
+
39
+ また、現在表示されているViewControllerを取得してテスト出力してみても同様に数ページ分呼び出されており、黒画面になってしまいます。
36
40
 
37
41
  NotificationCenterでフォアグラウンドメソッドを呼び出すのを、PageViewController.swiftの方に記述すると、該当のページ(最後のページ)だけ呼び出されているのですが、黒画面になってしまいます。
38
42
 
39
43
 
40
44
 
41
- フォアグラウンドメソッドでページを呼び出したりしてみましたが、実際はフォアグラウンドに戻った際にさせたい処理があるわけではなく、ページを更新したいのでなく、バックグラウンド再生中の処理の途中状態(現状)を表示させたい(ロック状態ではないバックグラウンドから戻ったときの正しく表示される状態)のですが、うまくいきません。
45
+ フォアグラウンドメソッドでページを呼び出したりしてみましたがうまくいかず、実際はフォアグラウンドに戻った際にページを更新したいのでなく、バックグラウンド再生中の処理の途中状態(現状)を表示させたいのですが(ロック状態ではないバックグラウンドから戻ったときの正しく表示される状態)、うまくいきません。
42
46
 
43
47
 
44
48
 
45
- バックグラウンド中のデバック出力を見ると、バックグラウンド再生中の自動ページ送り、自動スクロール(座標移動)などもできているようなのですが、戻った時にそのままの状態で表示させたいのですが、2ページ以上バックグラウンド再生(ロック状態で)すると、黒画面になってしまいます。どうすればよいでしょうか?
49
+ バックグラウンド中のデバック出力を見ると、バックグラウンド再生中の自動ページ送り、自動スクロール(座標移動)などもできているようなのですが、戻った時にそのままの状態で表示させたいのですが、2ページ以上バックグラウンド再生(ロック状態で)すると、黒画面になってしまいます。
50
+
51
+ 解決策がありましたら教えて頂けないでしょうか。
46
52
 
47
53
 
48
54
 
@@ -152,9 +158,17 @@
152
158
 
153
159
  userDefaults.set(didBackground, forKey: "didBackground")
154
160
 
161
+
162
+
163
+ if (self.isViewLoaded && (self.view.window != nil)) {
164
+
155
- pageCall() // ←ページ呼出メソッドを追加
165
+ pageCall() // ←ページ呼出メソッドを追加
166
+
167
+ }
156
168
 
157
169
  }
170
+
171
+
158
172
 
159
173
 
160
174
 

3

コード

2019/08/20 03:44

投稿

torkia
torkia

スコア24

test CHANGED
File without changes
test CHANGED
@@ -18,17 +18,31 @@
18
18
 
19
19
  バックグラウンド(ロック状態)からフォアグラウンドに戻るとナビゲーションコントローラー以下のViewが黒画面になってしまいます。この時、ナビゲーションバーの戻るボタンからテーブルビューに戻ることができています。
20
20
 
21
+ バックグラウンド(ロック状態)に入ったページから次のページでフォアグラウンドに戻った場合は、
22
+
23
+ 再生と表示ができています。それ以上のページ数を進んでフォアグラウンドに戻ると、黒画面になってしまいます。
24
+
25
+ (表示は自動スクロールさせて現在再生中のリストのアイコンを点灯させています)
26
+
27
+
28
+
21
29
 
22
30
 
23
31
  <試したことなど>
24
32
 
25
- NotificationCenterを使っていて、フォアグラウンドメソッドで該当のページを呼び出すようにするとクラッシュしてしまいます。
33
+ コンテンツ用のViewControllerでNotificationCenterを使っていて、フォアグラウンドメソッドで該当のページを呼び出すようにするとクラッシュしてしまいます。
26
34
 
27
- print文で、フォアグラウンドメソッドが呼ばれたら出力されるようにテスト出力してみると、バックグラウンド(ロック状態)の間に再生されたページ分が、フォアグラウンドに戻った時にそのページ分が一気に出力される状態です。
35
+ print文で、フォアグラウンドメソッドが呼ばれたら出力されるようにテスト出力してみると、バックグラウンド(ロック状態)の間に再生されたページ分が、フォアグラウンドに戻った時にそのページ分が一気に出力される(呼び出されている)状態です。
28
36
 
29
- このことから、フォアグラウンドに戻った時に数ページ分の回数、フォアグラウンドメソッドを呼出しているフォアグラウンドメソッド内で該当のページ呼び出すとクラッシュししまうのでいかと推測います。
37
+ NotificationCenterでフォアグラウンドメソッドを呼PageViewController.swiftの方に記述すると、該当のページ(最後のページ)だけ呼び出されいるのですが、黒画面にっています。
30
38
 
39
+
40
+
31
- なぜ、まとめて数回ばれいるのか、フォアグラウンドさせたい処理はどこに記述すればよいのか?そ方法など、解決策がありましら教えて頂けないでしょ
41
+ フォアグラウンドメソッドでページをび出したりしみましたが実際はフォアグラウンドに戻った際にさせたい処理があるわけでなく、ページを更新したいのでもなく、バックグラウンド再生中処理途中状態(現状)を表示させい(ロック状態ではないバックグラウンドから戻ったときの正しく表示される状態)のすが、まくいきません
42
+
43
+
44
+
45
+ バックグラウンド中のデバック出力を見ると、バックグラウンド再生中の自動ページ送り、自動スクロール(座標移動)などもできているようなのですが、戻った時にそのままの状態で表示させたいのですが、2ページ以上バックグラウンド再生(ロック状態で)すると、黒画面になってしまいます。どうすればよいでしょうか?
32
46
 
33
47
 
34
48
 

2

コード

2019/08/19 09:41

投稿

torkia
torkia

スコア24

test CHANGED
File without changes
test CHANGED
@@ -40,7 +40,33 @@
40
40
 
41
41
  ```
42
42
 
43
+ import UIKit
44
+
45
+ import AVFoundation
46
+
47
+
48
+
49
+ class PageContentViewController: UIViewController, UIScrollViewDelegate, AVAudioPlayerDelegate {
50
+
51
+
52
+
53
+ (略)
54
+
55
+
56
+
43
- // ◆◆◆ ViewDidLoad{}内に NotificationCenter を記述
57
+ override func viewDidLoad() {
58
+
59
+ super.viewDidLoad()
60
+
61
+
62
+
63
+
64
+
65
+ (略)
66
+
67
+
68
+
69
+
44
70
 
45
71
 
46
72
 
@@ -52,11 +78,13 @@
52
78
 
53
79
  NotificationCenter.default.addObserver(self, selector: #selector(foregroundMethod), name: NSNotification.Name.UIApplicationDidBecomeActive, object: nil)
54
80
 
81
+
82
+
83
+ }
55
84
 
56
85
 
57
86
 
58
87
 
59
- // ◆◆◆ ViewDidLoadの外に記述
60
88
 
61
89
 
62
90
 

1

コード

2019/08/19 07:31

投稿

torkia
torkia

スコア24

test CHANGED
File without changes
test CHANGED
@@ -26,7 +26,9 @@
26
26
 
27
27
  print文で、フォアグラウンドメソッドが呼ばれたら出力されるようにテスト出力してみると、バックグラウンド(ロック状態)の間に再生されたページ分が、フォアグラウンドに戻った時にそのページ分が一気に出力される状態です。
28
28
 
29
- このことから、フォアグラウンドに戻った時に数ページ分の回数、フォアグラウンドメソッドを呼出しているので、フォアグラウンドメソッド内で該当のページを呼び出すとクラッシュしてしまうように思うのですが、ぜ、まとめて数回呼ばれてるの、フォアグラウンドでさせたい処理はどこに記述すればよいのでょうか?その他の方法など、解決策がありましたら教え頂けなでしょうか
29
+ このことから、フォアグラウンドに戻った時に数ページ分の回数、フォアグラウンドメソッドを呼出しているので、フォアグラウンドメソッド内で該当のページを呼び出すとクラッシュしてしまうのでないかと推測しています
30
+
31
+ なぜ、まとめて数回呼ばれているのか、フォアグラウンドでさせたい処理はどこに記述すればよいのか?その他の方法など、解決策がありましたら教えて頂けないでしょうか。
30
32
 
31
33
 
32
34