Я создаю UIPopoverController
и устанавливаю «Editor1» в качестве контроллера представления содержимого.Когда вызывающий абонент получает didDismissPopover, я выпускаю UIPopoverController
.Это код:
- (IBAction)open1:(id)sender {
Editor1 *editor = [[Editor1 alloc] initWithNibName:@"Editor1" bundle:nil];
_popoverController = [[UIPopoverController alloc] initWithContentViewController:editor];
_popoverController.delegate = self;
[editor release];
[self.popOverController presentPopoverFromRect:self.open1Button.bounds inView:self.open1Button permittedArrowDirections:UIPopoverArrowDirectionAny animated:NO];
}
- (BOOL)popoverControllerShouldDismissPopover:(UIPopoverController *)popoverController{
NSLog(@"popoverControllerShouldDismissPopover");
return YES;
}
- (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController{
NSLog(@"popvoerControllerDidDismissPopover");
[_popoverController release];
}
В моем редакторе у меня есть UITextField
, где пользователь меняет текст, и я сохраняю его, когда получаю сообщение "editDidEnd"
- (IBAction)editingDidEnd:(id)sender {
NSLog(@"Editing did End");
// SAVE PROCEDURE
}
МойВопрос касается порядка, в котором вызываются методы.Порядок:
2011-09-07 12:35:21.628 iosTest[1967:b603] popoverControllerShouldDismissPopover
2011-09-07 12:35:21.629 iosTest[1967:b603] popvoerControllerDidDismissPopover
2011-09-07 12:35:21.983 iosTest[1967:b603] Editing did End
2011-09-07 12:35:21.985 iosTest[1967:b603] viewWill Disappear
Как вы можете видеть, вызов popoverControllerDidDismissPopover вызывается до editingDidEnd:
, поэтому это означает, что я освобождаю popover перед выполнением процедуры сохранения.Это может привести к сбою.
Кроме того, в моей процедуре сохранения мне нужно в некоторых случаях запрашивать подтверждение у пользователя.Я использую UIAlertView
для этого.
У вас есть какие-либо рекомендации?