ポップオーバーにあるセグメント化されたコントローラー (2 つのセグメント) があります。私の 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);
}