Существует шаблон, как делать такие вещи.Вы должны определить протокол следующим образом:
@protocol FirstViewDelegate <NSObject>
- (void)didDismissSecondView;
@end
Ваше первое представление должно соответствовать этому протоколу:
@interface FirstView: UIViewController <FirstViewDelegate> {
...
в его реализации добавить функцию didDismissSecondView
:
- (void) didDismissSecondView
{
AppDelegate *del = [[UIApplication sharedApplication] delegate];
[btn setTitle:del.str1];
}
Ваше второе представление должно иметь свойство
@interface SecondView : UIViewController
{
id<FirstViewDeledate> delegate;
}
@property (nonatomic, retain) id<FirstViewDeledate> delegate;
Когда вы отображаете второе представление из первого представления, установите его делегата на self
первого представления в вашей функции:
-(IBAction)gotoView2:(id)sender
{
SecondView *aView = [[SecondView alloc] init] // or whatever
...//other initialization code
aView.delegate = self;
... // show it
}
и, прежде чем отклонить второй взгляд:
-(IBAction)gotoView1:(id)sender
{
AppDelegate *del = [[UIApplication sharedApplication] delegate];
[del setStr1:@"Home"];
[self.delegate didDismissSecondView];
[self.view removeFromSuperView];
}
И все готово.Немного долго, но работает.