hope someone can help me on this as been stuck for hours.
I am trying to make a kind of picture book. I have a view which is my container and I add subviews to that by using addsubview.
On the subview, I have swipe gestures etc that I want to trigger off method in the parent view. I worked out how to trigger the delegate but I cant get the delegate to trigger the parent view. I have read over 10 different ways of doing it and none work.
I now very confused about what a super view is to. Just to confuse matters, the delegate has a tabcontroller and the parent view is tab button 1
I tried
[self.view.superview method]
[self.superview method]
On the delegate I tried self.tabcontroller.parentviewcontroller, selectedview, super view.super
UPDATE : The subview needs to be independant of the parent view as its a reusable view. Also I have not set the parentview to superview as I just thought a superview is a view with subviews (please don't kill me). So maybe I just need to set the parentview to a superview?
The proper way of doing such things is to use protocol and delegate pattern.
Define a protocol like
@protocol subViewDelegate
-(void)somethingHappened:(id)sender;
@end
then implement that protocol in your superview :
@interface superView:UIViewController<subViewDelegate> {
...
}
...
@end
define a delegate property in your SubView like this
@interface subView : UIView {
id<subViewDelegate> delegate;
...
}
@propery (nonatomic, assign) id<subViewDelegate> delegate;
...
@end
the in your subview, call the delegate like this
[self.delegate somethingHappened :self];