I have DiscountListTableViewController
that is shown as a separate screen in my app. But there's another screen (PlaceDetailsViewController
) where I need to show related discounts at the bottom.
Currently, PlaceDetailsViewController.view
has UIScrollView
as a container and I'm adding DiscountListTableViewController.tableView
to the this UIScrollView.content
container in viewDidLoad
of PlaceDetailsViewController
. This works and the table view is shown correctly, however unable to receive cell clicks.
I know UITableView
inherits from UIScrollView
and it's somehow not advised (but not restricted). However, from loose coupling point of view, every component should be designed in a way it could be independently used elsewhere, and it's DiscountListTableViewController
in my case.
PlaceDetailsViewController
component just needs DiscountListTableViewController
as-is, so there's no logic reason why it can't be used directly. Any suggestions?
Will share how solved that. Did subclassed UIScrollView and used as container view in PlaceDetailsViewController:
Also, don't forget to set PlaceDetailsContainerUIScrollView.delaysContentTouches = YES and PlaceDetailsContainerUIScrollView.canCancelContentTouches = NO.
Also, needed small fix in DiscountListTableViewController method:
Not advised ? It kind of felt like "dont do" after reading this.The unpredictability is never a good behaviour for the app
Perhaps this is late, but I managed to do this by:
Answer : Don't do this.
UITableview
is inherited from ---->UIScrollView : UIView : UIResponder : NSObject
Apple says :