Делегация - это путь. Я знаю некоторых людей, которые могут искать более простое решение, но поверьте мне, я пробовал других, и ничто не работает лучше, чем делегирование. Поэтому, если у вас возникла такая же проблема, прочитайте статью о делегировании и следуйте пошаговой инструкции.
В вашем subviewcontroller.h - объявите протокол и объявите в нем делегированный mthods.
@protocol myDelegate
-(void)clickedButton:(subviewcontroller *)subController;
@end
В вашем subviewcontroller.h, в @interface:
id<myDelegate> delegate;
@property (nonatomic, assign) id<myDelegate> delegate;
NSString *data;
-(NSString *)getData;
В вашем subviewcontroller.m синтезируйте myDelegate. Добавьте следующий код туда, где вы хотите уведомить ваш parentviewcontroller о том, что подпредставление выполняется так, как и должно:
[delegate clickedButton:self];
, а затем обработайте getData для возврата любых данных, которые вы хотите отправить вашему родительскому контроллеру
В вашем parentviewcontroller.h импортируйте subviewcontroller.h и используйте его делегат
#import "subviewcontroller.h"
@interface parentviewcontroller : VUIViewController <myDelegate>
{}
В вашем parentviewcontroller.m реализуйте метод делегата
- (void)clickedButton:(subviewcontroller *)subcontroller
{
NSString *myData = [subcontroller getData];
[self dimissModalViewControllerAnimated:YES];
[self reloadInputViews];
}
Не забывайте об управлении памятью!