質問編集履歴

2 訂正

退会済みユーザー

退会済みユーザー

2019/02/23 20:04  投稿

特定のviewControllerにOutlet接続されているUIObject(例えばUIButton)一覧を取得する方法はありますか?
いつもお世話になります。
例えばなのですが、下記の`TestViewContorller`にOutlet接続されているUIButton名称の一覧を取得するにはどの用に記述すればよいでしょうか?
```swift
class TestViewController: UIViewController {
   // Outlet/UIButton
   @IBOutlet weak var aBtn: UIButton!
   @IBOutlet weak var bBtn: UIButton!
   @IBOutlet weak var cBtn: UIButton!
   @IBOutlet weak var dBtn: UIButton!
   @IBOutlet weak var eBtn: UIButton!
   func createUIButtonArray() -> [UIButton] {
    
    配列作る
    for object in self.ほにゃらら { // <= こんなほにゃららってありますでしょうか?
          ボタンなら配列に追加
    }
   
   
   return 配列返す
   }
}
```
```
解決方法備忘録
toki_tdさんに教えていただき、
↓こんな感じで一覧を取得することができました。
```swift
let btnArray: [UIButton] = Mirror(reflecting: self).children.filter{
               $0.value is UIButton}.compactMap { $0.value } as! [UIButton]
```
  • Swift

    14580 questions

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

1 訂正

退会済みユーザー

退会済みユーザー

2019/02/23 17:50  投稿

特定のviewController?にOutlet接続されているUIObject(例えばUIButton)一覧を取得する方法はありますか?
特定のviewControllerにOutlet接続されているUIObject(例えばUIButton)一覧を取得する方法はありますか?
いつもお世話になります。
例えばなのですが、下記の`TestViewContorller`にOutlet接続されているUIButton名称の一覧を取得するにはどの用に記述すればよいでしょうか?
```swift
class TestViewController: UIViewController {
   // Outlet/UIButton
   @IBOutlet weak var aBtn: UIButton!
   @IBOutlet weak var bBtn: UIButton!
   @IBOutlet weak var cBtn: UIButton!
   @IBOutlet weak var dBtn: UIButton!
   @IBOutlet weak var eBtn: UIButton!
   func createUIButtonArray() -> [UIButton] {
      
    配列作る  
   // すいませんどうやって書いてイイか思いつきません
    for object in self.ほにゃらら { // <= こんなほにゃららってありますでしょうか?
          ボタンなら配列に追加
    }
   
   return array
   
   return 配列返す
   }
}
```
  • Swift

    14580 questions

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

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る