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

回答編集履歴

2

printを修正

2019/10/26 02:40

投稿

hameji
hameji

スコア1380

answer CHANGED
@@ -43,12 +43,12 @@
43
43
  if presentView is ADetailViewController {
44
44
  switch viewController {
45
45
  case is BViewController:
46
- print("B")
46
+ print("From ADetail, show B")
47
47
  // ここに値を書き換えるトランザクションを記入し、トランザクションがかえってきたら、tableViewにreloadをかけること
48
- return false
48
+ return true
49
49
  default:
50
- print("else")
50
+ print("From else, show B")
51
- return false
51
+ return true
52
52
  }
53
53
  }
54
54
  return true

1

情報追加

2019/10/26 02:40

投稿

hameji
hameji

スコア1380

answer CHANGED
@@ -13,4 +13,47 @@
13
13
  ```
14
14
 
15
15
  もし、それでも1月が取得できていないのでしたら、取得の方法(self.ref)がおかしいということで、
16
- 再度googleの公式ドキュメントを見てみる必要があると思います。
16
+ 再度googleの公式ドキュメントを見てみる必要があると思います。
17
+
18
+
19
+ 以下、2019/10/26修正
20
+ ==========================================================================
21
+
22
+ よくわかりませんが、どうしてもそのようなタイミングがいいということみたいですね。
23
+ TabBarをクリックした時にしたいということなので、
24
+ TabBarをcustom classでラップして、
25
+ その条件の時に値を書き換えるようにする必要があります。
26
+
27
+ [ここ](https://qiita.com/homyu/items/298fb31c159a4cc75fcf#%E3%82%BF%E3%83%96%E3%82%92%E3%82%BF%E3%83%83%E3%83%97%E3%81%97%E3%81%9F%E6%99%82%E3%81%AB%E3%83%A2%E3%83%BC%E3%83%80%E3%83%AB%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B)を参考に書いて見ました。
28
+
29
+ タイミングの取得はバッチしできることをサンプルを作成して確認しております。
30
+ ```Swift
31
+ import UIKit
32
+
33
+ class CustomTabBarController: UITabBarController, UITabBarControllerDelegate {
34
+
35
+ override func viewDidLoad() {
36
+ super.viewDidLoad()
37
+ self.delegate = self
38
+ }
39
+
40
+ func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool {
41
+ let naviCon = tabBarController.viewControllers![0] as! UINavigationController
42
+ let presentView = naviCon.visibleViewController
43
+ if presentView is ADetailViewController {
44
+ switch viewController {
45
+ case is BViewController:
46
+ print("B")
47
+ // ここに値を書き換えるトランザクションを記入し、トランザクションがかえってきたら、tableViewにreloadをかけること
48
+ return false
49
+ default:
50
+ print("else")
51
+ return false
52
+ }
53
+ }
54
+ return true
55
+ }
56
+ }
57
+ ```
58
+
59
+ ![イメージ説明](557c93330d413201abef3383b6d2df13.png)