У меня есть приложение 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
но все еще не работает... я получаю то же сообщение
Как это исправить???
заранее спасибо
EDIT: добавьте мой код перехода, чтобы помочь ответить на мой вопрос
-(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];
}
}