Вы должны использовать делегирование, чтобы сделать это
добавить это в .h ViewController1 над @ реализацией
@protocol ViewController1Delegate;
, а затем это ниже @ end
@protocol ViewController1Delegate <NSObject>
- (void)viewController1:(id)controller didDoAction;
@end
затем объявите свойство типа ViewController1Delegate в контроллере
@property (nonatomic, assign) id <ViewController1Delegate> delegate;
, затем добавьте его в .m ViewController1
@synthesize delegate;
и в действии вызовите метод делегата
if ([self.delegate respondsToSelector:@selector(viewController1:didDoAction)]) {
[self.delegate performSelector:@selector(viewController1:didDoAction) withObject:self];
}
Теперь, когда на ViewController2 .h impot ViewController1.h
#import ViewController1.h
Теперь, когда на ViewController2 .h слушаем такого делегата, как это
@interface ViewController2 : UIViewController <ViewController1Delegate>
, а затем в.m реализует метод
- (void)viewController1:controller didDoAction
{
//implement
}
, когда создаются экземпляры контроллеров представления, необходимо установить делегат для viewController1 для viewController2, как это
viewController1 = [ViewController1 new];
viewController2 = [ViewController2 new];
viewController1.delegate = viewController2