Уважаемые коллеги-программисты,
Каков наилучший способ передачи информации от ребенка в стеке навигации на один или несколько уровней? Я искал в Интернете и, похоже, не могу найти лучший способ начать реализацию этого.
В частности, это моя модель: у меня сгруппированное табличное представление с несколькими строками. Когда пользователь нажимает на строку, я беру их в MVC. То есть щелчок по строке «выбрать дату» переводит их в MVC с настройкой выбора даты (родительский процесс передает данные дочернему элементу в процессе). Как выбрать данные обратно (или другой фрагмент данных), как мне передать данные обратно? Вот какой-то код установки, если он помогает:
/* following is inside didSelectRowAtIndexPath of parent in navigation stack */
if (row == 1) {
DateViewController *datevc = [[DateViewController alloc] init];
datevc.selectedDate = [self dateToEnter];
[self.navigationController pushViewController:datevc animated:YES;
[datevc release];
}
DateViewController.h
#import <UIKit/UIKit.h>
@interface EnterProcedureDateViewController : UIViewController {
IBOutlet UIDatePicker *datePicker;
NSDate *selectedDate;
}
@property (nonatomic, retain) IBOutlet UIDatePicker *datePicker;
@property (nonatomic, retain) NSDate *selectedDate;
-(IBAction)selectButtonPressed:(id)sender;
@end
DateViewController.m
#import "DateViewController.h"
@implementation EnterProcedureDateViewController
@synthesize datePicker;
@synthesize selectedDate;
-(IBAction)selectButtonPressed:(id)sender {
/* how do I pass the date pickers date back to the ivar dateToEnter of parent?? */
[self.navigationController popViewControllerAnimated:YES];
}
-(void)viewWillAppear:(BOOL)animated {
if (selectedDate == nil) {
datePicker.date = [NSDate date];
} else {
datePicker.date = selectedDate;
}
[super viewWillAppear:animated];
}
...
@end
Заранее спасибо как всегда
Andy