我有一個分段控制器(兩個段),它位於彈出窗口中。我的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);
}
爲什麼'(NSInteger的*)'? – Cfr
沒有它,我不斷收到一個指向NSInteger類型轉換錯誤的指針,所以我決定嘗試將它作爲NSInteger進行類型轉換。 – LightMan