Realm에서 데이터를 가져와 UISegmentedControl에 표시

7395 단어 Swift

이런 느낌입니다





코드와 간략한 설명


  • let realm = try Realm()에서 Realm ()의 인스턴스를 만듭니다.
  • for 문에서 realm.objects(RealmDataSets.self)로 얻은 Realm의 값을 readRealmTag에 넣습니다.
  • realmTagArray.allSatisfy 에서 readRealmTag 의 값이 realmTagArray 의 모든 값에 같은 것이 없다면 realmTagArray.append(readRealmTag.tag) 로 배열에 값을 추가합니다.
  • 같은 타이틀의 Segment를 할 수 없도록, realmTagArray안에 같은 값이 들어가지 않게 하고 있습니다.
  •            ~~~一部省略~~~
    
    var realmTagArray = [String]()
    
    func readRealmTag(){
    
            do{
                let realm = try Realm()
                realmTagArray = []
    
                for readRealmTag in realm.objects(RealmDataSets.self){
    
                    if realmTagArray.allSatisfy({$0 != readRealmTag.tag}) == true{
    
                        realmTagArray.append(readRealmTag.tag)
    
                    }
    
                }
    
            }catch{
    
                //エラー処理など
            }
        }
    
  • .removeAllSegments() 에서 Segment를 삭제할 수 있습니다. (새로운 Segment를 만들 때 이전에 작성한 Segment가 남아 있으면 오래된 Segment 위에 새로운 Segment가 표시되어 이상한 모양이 됩니다.)
  • 에러 회피를 위해서 realmCRUDModel.realmTagArray.count가 0일 때 Segment를 작성시키지 않게 합니다.
  • UISegmentedControl() 는 간단합니다만 여기에서 해설했습니다. 버튼을 누르면 세그먼트가 증가합니다 (UISegmentedControl)
  • 
               ~~~一部省略~~~
    
    
    var uiSegmentControl = UISegmentedControl()
    let realmCRUDModel = RealmCRUDModel()
    
    func createSegment(targetView:UIView){
    
            realmCRUDModel.readRealmTag()
    
            uiSegmentControl.removeAllSegments()
    
            if realmCRUDModel.realmTagArray.count != 0{
    
               for segmentCount in 0...realmCRUDModel.realmTagArray.count - 1{
    
                    uiSegmentControl.insertSegment(withTitle: realmCRUDModel.realmTagArray[segmentCount], at: segmentCount, animated: true)
    
               }
            }
    
            uiSegmentControl.frame = CGRect(x: targetView.bounds.minX + 5, y: targetView.bounds.minY + 97, width: targetView.frame.size.width - 10, height: 32)
    
            uiSegmentControl.selectedSegmentTintColor = UIColor(red: 1.0, green: 0.40, blue: 0.51, alpha: 1.0)
    
            targetView.addSubview(uiSegmentControl)
        }
    



    최근에 만든 앱의 내용이었습니다.

    지적, 질문 등 있으면, 코멘트까지 부탁드립니다.

    좋은 웹페이지 즐겨찾기