Created
September 17, 2018 15:53
-
-
Save nh7a/1c60e899f89f52b18dbaade973341fd1 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
extension UIResponder { | |
struct ResponderIterator: IteratorProtocol { | |
private var responder: UIResponder? | |
init(_ responder: UIResponder) { self.responder = responder } | |
mutating func next() -> UIResponder? { | |
responder = responder?.next | |
return responder | |
} | |
} | |
struct ResponderSequence: Sequence { | |
private let responder: UIResponder | |
init(_ responder: UIResponder) { self.responder = responder } | |
func makeIterator() -> ResponderIterator { | |
return ResponderIterator(responder) | |
} | |
} | |
var responders: ResponderSequence { | |
return ResponderSequence(self) | |
} | |
} | |
extension UITableViewCell { | |
var parentTableView: UITableView? { | |
return responders.first { $0 is UITableView } as? UITableView | |
} | |
var parentTableViewController: UITableViewController? { | |
return responders.first { $0 is UITableViewController } as? UITableViewController | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment