我有一个位于弹出框上的分段控制器(两个段)。我的 prepareForSeque 方法工作正常,返回正确的默认 selectedSegmentIndex。但是当我选择另一个段并退出弹出框时,我的应用程序在执行 popoverControllerDidDismissPopover 方法时会崩溃,如下面的代码片段所示。
我究竟做错了什么?我希望分段控制器保留新选择的段,我认为这就是 popoverControllerDidDismissPopover 方法会做的事情。显然我的理解在这里是错误的,但是在哪里呢?提前感谢您能给我的任何帮助。
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
UIStoryboardPopoverSegue *popoverSegue;
popoverSegue = (UIStoryboardPopoverSegue *)segue;
UIPopoverController *popoverController;
popoverController = popoverSegue.popoverController;
popoverController.delegate = self;
SettingsEditorViewController *editorVC;
editorVC = (SettingsEditorViewController *)popoverController.contentViewController;
audioMessageChoiceIndex = editorVC.audioMessageChoice.selectedSegmentIndex;
NSLog(@"audioMessageChoiceIndex = %d", audioMessageChoiceIndex);
}
- (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController
{
NSInteger *newAudioMessageChoiceIndex = (NSInteger *)((SettingsEditorViewController *)
popoverController.contentViewController).audioMessageChoice.selectedSegmentIndex;
popoverController.delegate = self;
SettingsEditorViewController *editorVC;
editorVC = (SettingsEditorViewController *)popoverController.contentViewController;
editorVC.audioMessageChoice.selectedSegmentIndex = *(newAudioMessageChoiceIndex);
}