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

回答編集履歴

1

その2とその3を追加。

2017/08/23 08:16

投稿

fuzzball
fuzzball

スコア16733

answer CHANGED
@@ -1,1 +1,27 @@
1
+ # その1 プロパティ化
2
+
1
- `eachView`をプロパティにしてやれば、クラス内では自由にアクセスできます。
3
+ `eachView`をプロパティにしてやれば、クラス内では自由にアクセスできます。
4
+
5
+ # その2 subviewsから取得
6
+
7
+ self.viewの先頭にaddSubviewしているという前提であれば、subviewsから簡単に取得できます。
8
+
9
+ ```swift
10
+ if let eachView = self.view.subviews.first as? EachView
11
+ {
12
+ eachView.setIndexTo(index)
13
+ }
14
+ ```
15
+
16
+ # その3 viewWithTag(_:)で取得
17
+
18
+ ```swift
19
+ //インスタンス生成時にtagを設定しておいて
20
+ let eachView = EachView(frame: view.bounds)
21
+ eachView.tag = 1
22
+ :
23
+ //tagを指定してViewを取得
24
+ if let eachView = self.view.viewWithTag(1) as? EachView {
25
+ eachView.setIndexTo(index)
26
+ }
27
+ ```