2

Observing the switch and trigger action seems like below in reactive cocoa 4.But can't figure out in reactive cocoa 5.

            mediaTypeSwich.rac_signalForControlEvents(.ValueChanged)
                .flattenMap { (sender:AnyObject!) -> RACStream! in
                    let segment = sender as UISegmentedControl
                    switch segment.selectedSegmentIndex {
                    case 0:
                        return self.photoSignal()

                    default:
                        return self.videoSignal()
                    }
                }
                .deliverOnMainThread()
                .subscribeNextAs{(photosFetchResult: PHFetchResult) in
                    self.fetchResult = photosFetchResult
                    self.mediaCollectionView.reloadData()
            }

how can i do this for reactive cocoa 5

What i am trying to do is

testSwitch.reactive.trigger(for: .valueChanged)

And then

get the control enabled state and trigger action depending on the state.

1 Answers1

1

I'm not sure what ur means, You want to listen the index value changed of the segmentedControl, don't u?

You could try these:

var selectedIndex = MutableProperty<NSInteger>(0)

segControl.reactive
        .selectedSegmentIndexes
        .map({ $0 }).observeValues({ log.debug($0) })

To monitor the UISwitch value changed, you could try this:

       let `switch` = UISwitch.init(frame: CGRect(x: 100, y: 100, width: 0, height: 0))
       self.view.addSubview(`switch`)
       `switch`.reactive.isOnValues.observeValues({ print($0) })
Shaw
  • 92
  • 5