peterprokop / SwiftOverlays

SwiftOverlays is a Swift GUI library for displaying various popups and notifications
MIT License
631 stars 83 forks source link

updateOverlayText not working with blockingWaitOverlay #34

Open childr3n opened 7 years ago

childr3n commented 7 years ago

This code is not working : let soView = SwiftOverlays.showBlockingWaitOverlayWithText("Original text") SwiftOverlays.updateOverlayText(soView, text: "Updated text")

I think it's because a blockingWaitOverlay is containing two levels of containerViewTag before having the label. At this opposite of a traditional SwiftOverlay view.

To fix that I've temporary updated your updateOverlayText function this way, but I guess there's a more proper way to do it (or maybe i've missed another official trick to do it)

open class func updateOverlayText(_ parentView: UIView, text: String) {
    if let overlay = parentView.viewWithTag(containerViewTag) {
        for subview in overlay.subviews {
            if let label = subview as? UILabel {
                label.text = text as String
                break
            }

            if let subOverlay = subview.viewWithTag(containerViewTag) {

                for subSubView in subOverlay.subviews {
                    if let subLabel = subSubView as? UILabel {
                        subLabel.text = text as String
                        break
                    }
                }

            }

        }
    }
}
peterprokop commented 7 years ago

@childr3n thanks for the feedback, will fix that