私は2つの初期コントローラーを持つSplitViewControllerアプリを持っています:
- leftViewController (マスター)
- rightViewController (詳細)
私のrightViewController(詳細)には、私のメニュー(マスター)を表示/非表示にするボタンを表示するためのsplitViewControllerのデリゲートがあります
私の leftViewController (マスター) はメニュー アプリケーションです。メニューの要素を選択すると、マスターに接続されたセグエがトリガーされ、メニューの選択された要素の detailViewController が置き換えられます。
それを行うと、メニューを非表示にするために iPhone を回転させようとすると、アプリがクラッシュして次のように表示されます。
*** -[rightViewController respondsToSelector:]: message sent to deallocated instance
私のsplitViewControllerがデリゲートである古いrightViewControllerと通信したいためだと思いますが、それはなくなり、私のビューで置き換えられました。
多分私は必要かどうか:
デリゲートを新しいviewController(詳細)に再割り当てするか、rightViewControllerのデリゲートを削除してからnewViewControllerに割り当てます
私の新しいviewControllerでもこれを試しました:
@interface newViewController ()<UISplitViewControllerDelegate>
@end
@implementation newViewController
- (void)viewDidLoad
{
UISplitViewController *splitViewController = (UISplitViewController *)self.view.window.rootViewController;
UINavigationController *navigationController = [splitViewController.viewControllers lastObject];
splitViewController.delegate = (id)navigationController.topViewController;
}
...
@end
しかし、まだ機能していません...同じメッセージが表示されます
どうすればこれを修正できますか???
前もって感謝します
編集:私の質問に答えるのを助けるために私のセグエコードを追加してください
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if ([segue.identifier isEqualToString:@"viewSceneAgenda"]) {
[segue.destinationViewController setTitle:@"Citas"];
[segue.destinationViewController setUserIDElement:UID_CUS];
[segue.destinationViewController setOverallAppointments:overallDates];
}
}