the "normal" method should be to implement a property (not retained) delegate pointing to your parent viewController, but you may prefer to use something like this:
-(MyCustomUIViewController*)findParentUIViewControllerInSuperViews:(UIView*)myView {
for (UIView* next = [myView superview]; next; next = next.superview) {
UIResponder* nextResponder = [next nextResponder];
if ([nextResponder isKindOfClass:[MyCustomUIViewController class]]) {
return (MyCustomUIViewController*)nextResponder;
}
}
return nil;
}
now just call:
MyCustomUIViewController* myParentViewController = (MyCustomUIViewController*)[self findParentUIViewControllerInSuperViews:self];
[myParentViewController instanceMethod];
anyway, i also recommend you to learn how delegate works, it's useful in many cases and you'll surely need it sooner or later...