Есть много способов сделать это, и с течением времени я работал над программным обеспечением для iPhone, с которым я экспериментировал с большинством из них.Вот один из них.
В вашем дочернем контроллере представления вы можете создать свойство, которое является указателем на родительский контроллер представления.Таким образом:
ChildViewController.h
#import "ParentViewController.h"
@interface ChildViewController : UIViewController
{
ParentViewController *parentViewController;
}
@property (nonatomic, retain) ParentViewController *parentViewController;
ChildViewController.m
@implementation ChildViewController
@synthesize parentViewController;
-(void)dealloc
{
[parentViewController release];
}
Когда вы выполняете работу по созданию экземпляра дочернего объекта и помещаете его в контроллер навигации, выможно установить любые переменные, которые вы хотите, в свойствах этого дочернего элемента, включая установку, скажем:
ChildViewController *child = [[ChildViewController alloc] initWithNib:@"nibName" withBundle:nil];
child.parentViewController = self;
[self.navigationController pushViewController:child animated:YES];
[child release];
Затем внутри дочернего элемента вы можете напрямую говорить о свойствах родительского элемента, так как они задаются пользователем в полях.потомка, так что ...
self.parentViewController.dataField = @"My data for an NSString property of the parent view controller!";
Затем, когда вы убираете потомка обратно, вы обнаруживаете, что фактически устанавливаете эти данные в свойство .dataField
родительского контроллера представления.
(Весь код в этом ответе был напечатан прямо здесь и предназначен только для примера - я не даю никаких обещаний относительно орфографии, синтаксиса и т. Д.)