Не уверен, что понимаю проблему, но я понимаю, что это связано с отправкой данных с родительского контроллера на модальный при сохранении времени? Самый простой способ - использовать протокол Objective C, чтобы уведомить родителя, что была нажата кнопка сохранения, и запустить все оттуда.
Скажем, например, у меня есть класс с именем SaveController и RootViewController.
Сначала я создаю протокол с именем SaveControllerDelegate.h:
@protocol SaveControllerDelegate <NSObject>
- (void)saveWasHit:(id)sender;
@end
В SaveController.h я могу добавить к определению:
@interface SaveController : UIViewController {
id <SaveControllerDelegate> delegate;
}
@property (nonatomic, assign) id <SaveControllerDelegate> delegate;
@end
Теперь в RootViewController.h я добавляю протокол в качестве делегата:
@interface RootViewController : UIViewController <SaveControllerDelegate> {
...
}
Возвращаясь к SaveController, в файле .m у меня есть IBAction, который происходит при нажатии кнопки сохранения. Я изменяю его, чтобы проверить метод делегата в RootVewController (или каков бы ни был делегат), и, если он присутствует, вызвать метод делегата и отправить нужные мне данные:
- (IBAction)saveButtonHit:(id)sender
{
if ([self.delegate respondsToSelector:@selector(saveWasHit:)])
[self.delegate saveWasHit:data];
}
Теперь осталось только отредактировать RootViewController.m для ответа делегату:
saveController = [[SaveController alloc] init];
[saveController setDelegate:self];
И реализовать протокол:
- (void)saveWasHit:(id)sender
{
//do whatever I need to do with the data from SaveController here.
}